test oficial functions features commands java regex jmeter beanshell

java - oficial - jmeter test



Error en Beanshell Sampler JMeter para analizar RegularExpressionExtractor (3)

Configuración debajo del resultado de la muestra en archivo jar

mySampleResult.setResponseData("ReturnCode" + returnCode + "EndReturnCode" ,null);

copie el archivo jar en lib/ext de JMeter .

Cree un proyecto donde el Regular expression extractor se adjunta a la solicitud java que llama a la ejecución de prueba en el archivo jar

La cadena de respuesta está debajo

ReturnCodeThu Feb 16 08:01:56 GMT 2017,Thu Feb 16 09:09:27 GMT 2017,0:1:7:31,98.74105EndReturnCode

Extractor de expresión regular

Reference Name: returnValue Regular Expression: ReturnCode(.*?)EndReturnCode

Código Beanshell

${returnValue}

Error en Beanshell

Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval In file: inline evaluation of: `` try { Thu Feb 16 08:01:56 GMT 2017,Thu Feb 16 09:09:27 GMT 2017,0:1:7:31,9 . . . '''' Encountered "16" at line 4, column 13.

Por favor, hágamelo saber por qué estoy recibiendo este error.


El acceso a la variable JMeter de Beanshell es diferente de lo que se suponía.

Vas a utilizar el objeto Beanshell incorporado "vars" (o variable, si quieres).

whatsActuallyReturned = vars.get("returnValue"); vars.put("returnValue", "whatever I want to put instead");


Si solo desea imprimir el valor en el archivo de registro de JMeter, use el método log.info y use vars.get .

Código de BeanShell:

log.info("returnValue " + vars.get("returnValue"));


Su declaración de ${returnValue} es sintaxis incorrecta, al menos debe rodearlo con comillas como "${returnValue}" por lo que el intérprete de Beanshell lo trataría como una cadena Java

De ahora en adelante, simplemente poner esta declaración dentro de Beanshell Sampler no tiene ningún sentido, debe agregar un procesamiento adicional, es decir:

  • return "${returnValue}"; - configurará el resultado de Beanshell Sampler a este valor
  • SampleResult.setResponseData("${returnValue}".getBytes()); - lo mismo que arriba, pero usando SampleResult taquigrafía
  • print("${returnValue}"); - muestra el valor a STDOUT
  • log.info("${returnValue}"); - muestra el valor en el archivo jmeter.log

Consulte Cómo utilizar BeanShell: Componente incorporado favorito de JMeter para obtener más información sobre el uso de Beanshell en scripts de JMeter.