Сокращение таймера в Jmeter - PullRequest
0 голосов
/ 07 октября 2019

Мне нужно реализовать приведенное ниже действие в Jmeter

while (callAPIVariable и Timer меньше 30 секунд) - вызвать API - извлечь ответ - если -> ответ - «Stillжду до конца "тогда ничего не делай. - Else -> Validate response ---> установить callAPIVariable в false

Мне нужно зациклить цикл while до 30 секунд или до тех пор, пока callAPIVariable будет установлен в false

Я могу реализоватьцикл while и все функции, но я не могу понять, как добавить таймер в цикл while

Ответы [ 2 ]

1 голос
/ 08 октября 2019
  1. Добавьте JSR223 Sampler перед контроллером while и поместите следующий код в область «Сценарий»:

    vars.putObject('start', System.currentTimeMillis())
    SampleResult.setIgnore()
    
  2. Используйтеследующее выражение в качестве условия While Controller :

    ${__groovy((vars.get('callAPIVariable').equals('true') && (System.currentTimeMillis() - (vars.getObject('start') as long) < 30000)),)}
    

Вот и все, приведенная выше настройка позволяет циклу пока контроллер выполнять цикл до тех пор, пока значение callApiVariable не станет равным true или 30-секундный проход (независимо от того, что произойдет первым)

vars - это сокращение для JMeterVariables экземпляра класса, он обеспечивает доступ на чтение / запись ко всем переменным JMeter в текущем потоке (виртуальный пользователь) контекст. Ознакомьтесь с Топ-8 Java-классов JMeter, которые вы должны использовать с Groovy , чтобы получить более подробную информацию о JMeter API сокращений, доступных для сценариев Groovy

0 голосов
/ 07 октября 2019

Вы можете добавить в качестве родителя Runtime Controller с Runtime, установленным как 30

Runtime Controller контролирует, как долго его дочерние элементы будут работать. Контроллер будет запускать свои дочерние элементы до тех пор, пока не будет превышено настроенное время выполнения.

Просто щелкните правой кнопкой мыши на вашем контроллере -> Вставить родительский элемент -> Логический контроллер -> Контроллер времени выполнения

...