Я устанавливаю свойства JMeter, используя JSR223 вне контроллера WHILE, как это -
if(jsonResponse.currentStatus == "Received")
{
props.put("pollCount", 0);
def requestId = jsonResponse.id;
props.put("requestId", requestId);
props.put("currentStatus",jsonResponse.currentStatus);
}
Затем я получаю доступ к этим свойствам в контроллере "WHILE", как это -
((("${__groovy(props.get('currentStatus'))}" == "Received") ||
("${__groovy(props.get('currentStatus'))}" == "Processing")) &&
(${__groovy(props.get('pollCount'))} < 24))
Внутри контроллера WHILE я делаю HTTP-запрос для проверки «currentStatus».Если он «завершен», то моя идея заключается в том, что я выйду из контроллера «WHILE».
Аналогично, у меня есть «IF Controller» внутри «While Controller».После выполнения HTTP-вызова и проверки «currentStatus».Затем я сбрасываю свойства "реквизита".Если «currentStatus» равен «Received» или «Processing», я захожу внутрь «IF Controller», где я предоставляю задержку таймера 30 секунд с постоянным таймером.В «Контроллере IF» я применяю условие, подобное этому -
(("${__groovy(props.get('currentStatus'))}" == "Received") ||
("${__groovy(props.get('currentStatus'))}" == "Processing"))
Но оно не входит в контроллер IF, даже если условие «Обрабатывается».
«Пока контроллер» продолжает обрабатывать бесконечно, даже если для «currentStatus» установлено значение «Завершено».
Кажется, что условия не работают для меня.Как я могу это исправить, чтобы, когда «currentStatus» был «Completed», он выходил из «WHILE Controller»?