Как я могу получить имя и другие свойства контроллера транзакций, состоящего из трех запросов?

Структура моего скрипта выглядит так:

Контроллер транзакций ПОИСК ПРЕДЛОЖЕНИЙ Транзакция

  • HTTP-запрос предлагает

  • http запрос предлагает детали

Постпроцессор Beanshell

Какая команда BeanShell позволяет мне получить имя, код ответа, время ответа, результат теста и время теста для всей транзакции?

Куда мне прикрепить BeanShell PostProcessor? Какой код я должен использовать, но, на мой взгляд,

Имя строки = sampler.getName();

не работает правильно для меня.


person Kac    schedule 26.01.2016    source источник


Ответы (1)


IMO, вы должны использовать BeanShell Listener вместо Beanshell PostProcessor. Прослушиватель может находиться в том же месте, где находится ваш текущий Beanshell PostProcessor. Этот объект имеет доступ к sampleResult, который будет содержать код ответа/время ответа/и т. д., например:

sampleResult.getSampleLabel(); // the name, e.g. 'SEARCHING OFFERS Transaction'

Полный список функций SampleResult находится здесь. для обработки транзакций в этом прослушивателе вы можете фильтровать их (например, по имени).

person Kiril S.    schedule 26.01.2016
comment
Кирилл, спасибо, я использовал код, который Вы мне дали и : String test = sampleResult.getSampleLabel();log.info(test); у меня отлично работает, также String test2 = sampleResult.getResponseCode(); лог.информация(тест2); работает нормально, как правило, все методы имеют тип String. К сожалению, я не знаю, как использовать метод getTime() - это тип long, или getSampleCount() - тип int. не могли бы вы привести несколько примеров, как использовать методы, которые относятся к типу, отличному от String? - person Kac; 27.01.2016
comment
Не уверен, что понимаю ваш вопрос. Вы имеете в виду что-то вроде log.info("" + sampleResult.getTime()); или long totalTime = sampleResult.getTime(); log.info("" + totalTime); Или вы можете просто добавить их все так: log.info(String.format("%s,%s,%d,%d", sampleResult.getSampleLabel(), sampleResult.getResponseCode(), sampleResult.getTime(), sampleResult.getSampleCount())); - person Kiril S.; 27.01.2016
comment
Да, это именно то, что я искал, но когда я пытаюсь запустить этот код, log.info(String.format(%s,%s,%d,%d, sampleResult.getSampleLabel(), sampleResult.getResponseCode( ), sampleResult.getTime(), sampleResult.getSampleCount())); появляется следующая ошибка - person Kac; 28.01.2016
comment
:2016/01/28 13:55:15 ОШИБКА - jmeter.util.BeanShellInterpreter: ошибка при вызове метода bsh: eval Исходный файл: встроенная оценка: `` log.info(String.format(%s,%s,%d ,%d, sampleResult.getSampleLabel(), sampleRe... '': ошибка при вызове метода: формат статического метода (java.lang.String, java.lang.String, java.lang.String, long, int) не найден в классе 'java.lang.String' - person Kac; 28.01.2016
comment
О, извините, я забыл, что он использует формат старого стиля: log.info(String.format("%s,%s,%d,%d", new Object[] {sampleResult.getSampleLabel(), sampleResult.getResponseCode(), sampleResult.getTime(), sampleResult.getSampleCount()})); - person Kiril S.; 28.01.2016