Jmeter - как продолжать пытаться один и тот же запрос, пока он не будет выполнен - PullRequest
0 голосов
/ 18 сентября 2018

Итак, сейчас у меня есть http-запрос под контроллером while, и у меня есть пользовательская переменная Failure, установленная в true.Я хотел бы, чтобы jmeter продолжал пробовать этот запрос, пока он не будет выполнен (без возврата 500).Мое условие цикла while:

${__javaScript(${Failure})} 

Я также пробовал $ {Failure} как условие while, но получаю тот же результат.

И у меня есть утверждение JSR223 после дерева результатов, как показано ниже:

if (ResponseCode.equals("500") == true) {
    vars.put("Failure", true)
}
else { 
    vars.put("Failure", false)
}

Когда я запустил это, я попал в бесконечный цикл, даже мой запрос был выполнен успешно.Кажется, значение Failure никогда не обновлялось.Будем благодарны за любые предложения по этому вопросу.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Я наконец-то заработал.В моем утверждении JSR233 я обновил его до:

if (prev.getResponseCode().equals("500")) {
    vars.put("Failure", "true")
}
else { 
    vars.put("Failure", "false")
}

И теперь оно работает.

0 голосов
/ 19 сентября 2018

Это потому, что вы пытаетесь добавить объект Boolean в функцию, которая ожидает String .Чтобы иметь возможность сохранять логическое значение в переменной JMeter, вам нужно использовать вместо этого функцию vars.putObject () , например:

vars.putObject("Failure", true)

или окружать true кавычкамипоэтому он будет выглядеть как строка для Groovy:

vars.put("Failure", "true"); 
  1. Измените код подтверждения JSR223 так:

    if (ResponseCode.equals("500")) {
        vars.put("Failure", "true")
    }
    else { 
        vars.put("Failure", "false")
    }
    
  2. AmendВаше условие контроллера будет просто ${Failure}.Использование JavaScript - это форма анти-паттерна производительности, если вам нужно выполнить некоторые скрипты - перейдите на Groovy .В частности, в вашем случае вы можете просто использовать переменную ${Failure} в качестве условия, если она может быть true или false

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