Jmeter. Постпроцессор BeanShell
Я прошел через скрипт оболочки bean в jmeter, но я не нашел
любой пример этого, как это полезно в jmeter и какой путь.
значения пробоотборника и т.д.
Может ли кто-нибудь объяснить bean скрипт оболочки в Jmeter с примером. В
beanshell post/pre processor script, где мы пишем script.
Я борюсь с этим, что является фактическим использованием его. Пожалуйста, объясните
с этим. это было бы большой помощью для меня или других, а также для понимания
его использование.
Ответы
Ответ 1
Если вы посмотрите раздел "Script" в обработчике столбцов Beanshell, вы увидите следующее:
Script(variables: ctx, vars, props, prev, data, log)
-
ctx - означает JMeterContext, предоставляет доступ к JMeter Context API (подробности см. в JavaDoc). Пример использования:
int threadNum = ctx.getThreadNum(); // get current thread number
-
vars - означает JMeterVariables. Используя vars
, вы можете получить/установить значения переменных.
String myvar = vars.get("myvar"); // get ${myvar} variable value and store it to myvar string
myvar = myvar + "something"; // append "something" to myvar
vars.put("myvar", myvar); // put new value into ${myvar} variable
-
реквизит - означает JMeter Properties. В основном такие же, как переменные, но видимость переменных ограничена текущей группой потоков, а свойства являются "глобальными"
-
prev - сокращение от предыдущего SampleResult. Кажется, именно то, что вы ищете. Вы можете получить/установить время начала, время окончания, время выполнения, время ожидания, URL, код ответа, ответное сообщение и т.д. См. JavaDoc для получения исчерпывающей информации. Пример использования:
String code = prev.getResponseCode();
String message = prev.getResponseMessage();
-
массив байтов данных, содержащий данные ответа родительского семплера
String samplerData = new String(data);
System.out.println(samplerData);
-
log - может использоваться для печати чего-либо в файле jmeter.log
log.info("This line has been written by Beanshell Post Processor");
Смотрите Как использовать BeanShell: JMeter любимый встроенный компонент для более подробной информации и реальных примеров.
Ответ 2
Если вы хотите выполнять вычисления между запросами, Beanshell поможет вам достичь этого в jmeter. У нас Beanshell Sampler, Beashell Pre Processor и Обработчик Post Beanshell. Для примера создайте группу потоков и добавьте пробоотборник бобы, как показано на рисунке.
В разделе script введите
var a=1;
var b=2;
var c=a+b;
log.info("sum="+c);
и запустить с включенным средством просмотра журнала (меню "Параметры" > "Просмотр журнала" ).
![enter image description here]()
Вы можете вызвать java-методы jar (должно быть в jmeter_folder/lib/ext) с использованием beanshell script.
Beashell Pre Processor используется для выполнения вычислений и отправки значений вместе с запросом. Предположим, хотите ли вы зашифровать имя пользователя и пароль перед отправкой. Вы можете предоставить учетные данные, зашифровать их с помощью методов beanshell/java и установить его как переменные в beanshell script (vars.put("variablename",variablevalue)
). Вы можете добавить переменную для запроса как http://test.com?parameter=${variablename}
.
Аналогично Beathell PostProcessors используются для обработки ответа. Предположим, вы хотите расшифровать значение из ответа, извлечь значение (с помощью экстрактора регулярных выражений) и дешифровать с помощью beanshell script.
Ответ 3
Например, я использую JMeter для создания Клиента. Если ответное сообщение Created
, установите результат на Pass
; В противном случае установите результат на Fail
, сообщение об ошибке - Note:Creation failed
. Шаги:
- Соберите http-запрос, используя
TTP Request Sampler
.
- Добавьте
BSF Assertion Sampler
под ним.
- Найти методы, которые мне нужно использовать из http://jmeter.apache.org/api/index.html. Поскольку мне нужно манипулировать
Http Request Sampler
, я перехожу непосредственно в пакет org.apache.jmeter.protocol.http.sampler
. Если вы знакомы с этими методами, пропустите этот шаг.
![введите описание изображения здесь]()
- Завершите сэмплер BSF.
prev
означает предыдущий результат выборки
![введите описание изображения здесь]()