Jmeter Пока петля - PullRequest
       7

Jmeter Пока петля

0 голосов
/ 30 мая 2018

Я бы хотел выполнить цикл while, используя jmeter.В цикле я использую xpath extract для извлечения информации из ответа сервера и сохранения ее в переменной.Я хотел бы выйти из цикла, если в этой переменной есть какие-либо данные (если запрос был успешным), в противном случае я хотел бы потерпеть неудачу, если он не отвечает правильно при x количестве попыток.Это то, что может сделать JMeter?

1 Ответ

0 голосов
/ 30 мая 2018

Я нашел решение для этого, если вы знаете ответ, который вы пытаетесь извлечь из экстрактора Xpath, с помощью ответных утверждений и возможного цикла while.

вот мой ответ

Прежде всего добавьте сэмплер бобовой оболочки в план тестирования перед циклом while.В бобовую оболочку добавьте следующие 2 строки

vars.put("counter","1"); 
vars.put("txtFound","FALSE")

enter image description here

Далее Добавьте Пока контроллер со следующим условием

${__javaScript("${txtFound}" == "FALSE" && parseInt(${counter})<=3,)}

Приведенное выше выражение оценивается как истинное, если оба условия выполняются. Здесь 3 обозначает количество попыток.

Теперь в цикле while добавьте ваш запрос.К тому же запросу добавьте ответное утверждение и добавьте шаблон (текст, который вы пытаетесь извлечь с помощью Xpath)

enter image description here

к тому же запросу добавьте постпроцессор beanhell и скопируйте в него следующий код

int counter = Integer.parseInt(vars.get("counter"));
if(counter==3)
vars.put("txtFound","TRUE");
counter++;
vars.put("counter",Integer.toString(counter)); 

в приведенном выше коде 3 представляет количество попыток.Код будет увеличивать число попыток на одну для каждой итерации, и если он достигает максимальных попыток, он устанавливает значение txtFound в TRUE, чтобы остановить тест.

Добавить условие if ниже запроса, как показано ниже enter image description here

В цикле if добавьте сэмплер оболочки bean и установите значение txtFound в TRUE, как показано ниже enter image description here

Когда подтверждение ответа не выполняется, если условие не будетвыполняется, и если утверждение ответа проходит, если условие установлено в true, и элементы в If будут выполняться

Тест останавливается, если он находит правильное время ответа, или останавливается, если достигает максимального числа попыток.В моем случае я оставил 3 в качестве подтверждения ответа, поэтому, если он найдет 3, он остановится или достигнет максимального числа 3 попыток enter image description here enter image description here

Пожалуйста, перейдите по этой ссылке для получения дополнительной информации о
, а контроллер

...