java - example - Actualizar las variables de Jmeter con beanshell
jmeter random variable (2)
He encontrado un problema al intentar actualizar una variable Jmeter con un script beanshell. He seguido este manual y he visto este tema y ambos dicen lo mismo:
- Para actualizar una variable use
vars.put("variable", "newValue");
- El valor que pones solo puede ser una Cadena.
Ahora quiero usar este código:
String x = vars.get("counter");
int y = Integer.parseInt(x);
y = y + 1;
String z = "" + y;
vars.put("counter", z);
// print(z);
Mi contador de variables es un parámetro de usuario (probado anteriormente como variable definida por el usuario) con el valor 1. Puedo ver que mi script funciona porque la impresión (z) devuelve el valor 2. Ahora también me explico que mi contador de variables se actualiza en el parámetros de usuario para que cuando vuelva a ejecutar esto me dé el valor 3. Este no es el caso: el valor no está actualizado, así que cada vez que ejecuto el script me devuelve el valor 2.
¿Alguien que pueda ayudarme con esto?
No veo ningún problema en tu script. Debería funcionar bien.
Recuerde que todas estas variables de beanshell son específicas del hilo. Es decir, si Thread1 lo incrementa a 2, el valor actual de ''counter'' para Thread2 seguirá siendo 1.
Creo que ejecuta su prueba para más hilos / usuarios con solo una iteración. Es por eso que imprime 2 para todos los usuarios. Si tiene más recuentos de bucle / configúrelo para siempre, el contador aumentará.
Puede cargar su archivo jmx si aún no resuelve el problema.
EDITAR:
Acabo de verificar tu prueba de jmeter. Aunque incremente el valor del contador en 1 en la Muestra de Beanshell, Yolu vuelve a establecer el contador en 1 como parte de los User Parameters
del User Parameters
. Eliminarlo Después de eliminarlos, funciona bien para mí.
Pon el administrador de cookies en tu script y estarás bien.
Ahora tiene una variable global contador = 1, en una solicitud utiliza una variable local y la establece como 2. Cuando otra solicitud intenta recuperar el valor del contador obtiene el valor global 1, porque el local está en la papelera.