Jmeter - как сломаться в то время как контроллер после получения успешного ответа - PullRequest
0 голосов
/ 06 марта 2019

Мне нужна помощь о том, как прервать цикл контроллера, когда я получил успешный ответ.

Steps:-
1. I have a while controller where I kept below logic
${__javaScript((${controller} < 5),)}
2. And inside while controller I have created http request which return response.
This request takes some time to give result.if this request is still
running it will return status code 202.. and if this request is completed it will give 200.(I have another API to check this)

So here I dont know when it will get success.
for that after each request I have kept waiting time.
So when I call first time after while loop.. its giving 202(because its still running)
and I will continue this process till 5 times..
So here there is chance I can get 200 success code at 3rd request.
So what I want here is I would like to break the loop after that..I dont want to run till 5 times.

I am using below code to read the response.

if (status_code == "200"){
            AssertionResult.setFailure(false); 
    }

Поэтому, когда я получаю 200 от ответа, он должен остановиться и получить успех, а если я не получу 200 отответ на все 5 попыток должен быть неудачным.

1 Ответ

0 голосов
/ 06 марта 2019
  1. Добавьте Извлечение регулярных выражений как дочерний элемент запроса API и настройте его следующим образом:

    enter image description here

    это извлечет API Код статуса HTTP и сохранит его в ${responseCode} переменную

  2. Измените условие вашего контроллера, чтобы использовать следующее __ jexl3() функция

    ${__jexl3(${__jm__While Controller__idx} < 5 && "${responseCode}" != "200",)}
    
  3. Вот и все, при условии установки выше, ваш контроллер будет работать в 2 случаях:

    • Код ответа 200
    • Запрос API выполняется 5 раз

Дополнительная информация: Использование контроллера while в JMeter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...