variable example javascript jmeter lowercase beanshell

javascript - example - jmeter random variable



En JMeter y BeanShell, ¿cómo puedo hacer una variable en minúscula? (5)

Hmmmm, tu código de shell de frijoles no funcionó para mí. La muestra de shell de frijol devolvió:

Response code: 500 Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``String blah = AAP; vars.put("blah", blah.toLowerCase()); //${blah} now availab . . . '''' : Typed variable declaration : Void initializer

Agregué dos comillas dobles para resolverlo:

String blah = "${my_initial_reference}"; vars.put("blah", blah.toLowerCase()); //${blah} now available

En los Parámetros de usuario de JMeter, ¿cómo puedo hacer una variable en minúscula?

Columna izquierda

my_lowercase_variable

Columna derecha

${__BeanShell(''${my_variable}''.toLowerCase())} //fails

o

${__javaScript(''${my_variable}''.toLowerCase())} //fails

Tal que ${my_lowercase_variable} es minúscula de ${my_variable} . Intentó con cita y sin y escapando y tal. Sin suerte. Cualquier trucos o consejos bienvenida.


Nota personal.

Resulta ser un trazador de líneas dos en BeanShell Sampler en lugar de un comando __BeanShell. No exactamente en los ejemplos, lamentablemente.

Agregué BeanShell Sampler bajo el Thread Group, luego hice una variable. No se requieren parámetros en el formulario solo los dos guiones del trazador de líneas a continuación. Siempre que no cambie la variable, puedo copiar los datos en otra variable, cambiarla en su lugar y luego hacer una referencia de Valor cuando sea necesario.

Primero defina una variable en algunos Parámetros del usuario o tal, por ejemplo:

Name: my_initial_reference Value: ITS IN CAPS

Agregue un Bean Sampler bajo Preferencias de usuario o lista de definiciones (justo al lado, no es un proceso secundario)

Meter en:

String blah = "${my_initial_reference}"; // vars.put("blah", blah.toLowerCase()); //${blah} = "its in caps" now available

Ahora debajo de eso con pares Nombre / Valor puedo asignar $ {blah} como el valor al nombre de proceso que lo requiera.

Tenga en cuenta que la respuesta de depuración aún mostrará el valor inicial en mayúsculas, pero también verá blah = its en mayúsculas, que es lo que quería usar.


Las funciones de beans y JavaScript en este uso fallarán, porque no importan los paquetes que necesita para usar .toLowerCase .

Si realmente necesita usar una función para convertir mayúsculas / minúsculas (en lugar de declararlas como minúsculas en primer lugar), es posible que deba escribir un guión posterior al procesador completo en beanshell para importar los paquetes necesarios.


Simplemente puede agregar una función

${__lowercase(${VAL},VALUE)} ${__uppercase(${VAL},VALUE)}

Nota: VAL puede correlacionarse o ser un valor paramiterizado (er VAL = TO LOWER o VAL = TO UPPER). Podemos usar esta función en beanshell (pre-procesador / post-procesador / sampler). Versión de Jmeter usando (2.6).

Podemos usarlo donde queramos en el script como $ {VALUE}.


${__javaScript(''${foobar}''.toLowerCase())} funciona. Si el resultado es ${foobar} lugar del desired value , significa que la variable no ha sido declarada

Tenga en cuenta que las variables se definen solo después de que se haya analizado el componente "Variable definida por el usuario". Las variables no se pueden reutilizar dentro de un único componente "Variable definida por el usuario", por ejemplo:

La segunda fila en esa imagen no podrá referirse a la variable my_variable en la primera fila. Para poder referirse a la primera variable, se necesitan dos componentes de "Variable definida por el usuario". La primera variable estará en el primer componente y la segunda variable en el segundo, por ejemplo:

Con eso, ${my_lower_case_variable} se convertirá con éxito en some value .

${__BeanShell( " ${my_variable} " .toLowerCase())} también funciona. (Tenga en cuenta que Bean Shell necesita comillas dobles. El código de su pregunta usa comillas simples).

Otra forma es usar vars.get :

  • ${__javaScript(vars.get(''my_variable'').toLowerCase())}

  • ${__BeanShell(vars.get("my_variable").toLowerCase())}