java - while - Ошибка в пробоотборнике Beanshell JMeter для синтаксического анализа RegularExpressionExtractor




jmeter while controller (2)

Установка ниже результата образца в файле jar

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

скопируйте файл jar в lib/ext JMeter .

Создайте проект, в котором средство выделения Regular expression extractor присоединяется к запросу java, который вызывает runtest в файле jar

Строка ответа ниже

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

Регулятор регулярных выражений

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

Код бобы

 ${returnValue}

Ошибка в 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.

Пожалуйста, дайте мне знать, почему я получаю эту ошибку.


Ваш ${returnValue} синтаксически неверен, вам нужно, по крайней мере, окружить его кавычками вроде "${returnValue}" поэтому интерпретатор Beanshell будет рассматривать его как строку Java

Идем вперед, просто поместив это утверждение в Beanshell Sampler, не имеет никакого смысла, вы должны добавить некоторую дополнительную обработку, то есть:

  • return "${returnValue}"; - будет задан результат Beanshell Sampler для этого значения
  • SampleResult.setResponseData("${returnValue}".getBytes()); - то же, что и выше, но с использованием сокращения SampleResult
  • print("${returnValue}"); - вывести значение в STDOUT
  • log.info("${returnValue}"); - вывести значение в файл jmeter.log

См. Раздел « Использование BeanShell: избранный встроенный компонент JMeter» для получения дополнительной информации об использовании Beanshell в сценариях JMeter


Если вы хотите просто напечатать значение в файле журнала JMeter, используйте метод log.info и используйте vars.get .

Код BeanShell:

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