2017-02-16 7 views
1

Установка ниже результата образца в банке файлОшибка в Beanshell Sampler JMeter для разбора RegularExpressionExtractor

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

скопировать файл банку в lib/ext из JMeter.

Создать проект, в котором Regular expression extractor прилагается к запросу Java, который вызывает RunTest в банке файл

строка отклика ниже

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

Regular Expression экстрактор

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

Beanshell Код

${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. 

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

ответ

0

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

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

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

См How to Use BeanShell: JMeter's Favorite Built-in Component для получения дополнительной информации об использовании Beanshell в сценариях JMeter

+1

Обычно я игнорирую эту форму комментариев, но вы, кажется, не только невежественны, но и немного самоуверены. https://i.stack.imgur.com/ZTvVf.png –

+0

Извините, мой плохой. Но функция кажется недокументированной! –

0

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

BeanShell Код:

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

Способ доступа к переменной JMeter от Beanshell отличается от того, что вы предполагали.

Вы собираетесь использовать встроенный объект Beanshell "vars" (или переменную, если хотите).

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