Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

164
Visualizações
Datos únicos de K6 por escenario

Estoy creando una prueba con dos escenarios con diferente cantidad de usuarios y tiempo de aceleración. La idea es que cada usuario inicie sesión una vez para recuperar una cookie de SSO, que se utilizará en solicitudes posteriores. Los datos del usuario se almacenan en un archivo json y cada grupo de usuarios se analiza en dos matrices compartidas, una para cada escenario. Los usuarios se agrupan en el JSON con diferentes roles y derechos de acceso por lo que no se pueden mezclar.

El siguiente código funciona bastante bien si no tiene tantos usuarios y el sueño "correcto" en la parte de lógica empresarial, de lo contrario, se sincronizará con respecto a exec.scenario.iterationInTest . Tampoco puedo usar la identificación de VU , ya que la identificación de VU es por prueba y no por escenario.

¿Alguien que tenga alguna solución para esto?

En este momento estoy llamando a un contador de API de terceros para obtener números a fin de obtener usuarios únicos para cada escenario, pero no me gusta esa solución. Sería genial tener un VuserID único por escenario a partir de 1.

 import { SharedArray } from "k6/data"; import jsonpath from "https://jslib.k6.io/jsonpath/1.0.2/index.js" import { login } from '../requests/login.js'; const testdata = JSON.parse(open('../data/testdata.json')); const usersA = new SharedArray("usersA", function () { return jsonpath.value(testdata, '$.usersA') }); const usersB = new SharedArray("usersB", function () { return jsonpath.value(testdata, '$.usersB') }); let user; const usersARampUp = usersA.length * 2; const usersBRampUp = usersB.length * 9; export const options = { scenarios: { loginUserA: { executor: 'ramping-vus', exec: 'userA', startVUs: 0, stages: [ { duration: usersARampUp + 's', target: usersA.length }, { duration: '10m', target: usersA.length } ] }, loginUserB: { executor: 'ramping-vus', exec: 'userB', startVUs: 0, stages: [ { duration: usersBRampUp + 's', target: usersB.length }, { duration: '10m', target: usersB.length } ] } } }; export function userA() { let dataCounter = exec.scenario.iterationInTest; if (__ITER == 0) { //Only login once per test to retrieve SSO cookie user = usersA[dataCounter]; login(user.userName, user.password); //SSO-cookie is set in cookieJar } //Business logic after login and SSO cookie is retrieved } export function userB() { let dataCounter = exec.scenario.iterationInTest; if (__ITER == 0) { //Only login once per test to retrieve SSO cookie user = usersB[dataCounter]; login(user.userName, user.password); //SSO-cookie is set in a cookieJar } //Business logic after login and SSO cookie is retrieved }
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda