Начать следующую итерацию Loop Controller - PullRequest
0 голосов
/ 08 июня 2018

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

Например, если один из сэмплеров выходит из строя, вместо запуска цикла следующего потока яЯ хотел бы запустить цикл Loop Controller, я предполагаю, что это будет достигнуто с помощью свойств groovy + JMeter, но я не могу найти правильный способ сделать это.

Ответы [ 3 ]

0 голосов
/ 11 июня 2018

Самый простой способ - использовать If Controller .

  1. Добавить If Controller после сэмплера, при сбое которого вы хотите перезапустить цикл
  2. Поместить все запросы, которые «ниже» If Controller, являются потомками If Controller
  3. Используйте ${JMeterThread.last_sample_ok} в качестве условия If Controller

Вот и все, теперь если дочерние элементы контроллера будут выполняться только в случае успешного выполнения предыдущего сэмплера, в противном случае он будет следующимИтерация контроллера цикла.

JMeter If Controller Demo

Как видно из вышеприведенного примера, Some Other Sampler был выполнен только тогда, когда Some Sampler был успешным.

0 голосов
/ 12 июня 2018

Попробуй До Контроллера от этого парня - http://www.testautomationguru.com/jmeter-until-controller/. Это должно помочь.

0 голосов
/ 09 июня 2018

Вы можете сделать это, используя цикл Loop вместо Контроллер цикла Использование Пока контроллер

  1. Установите действие, которое необходимо предпринять при ошибке сэмплера, чтобы продолжитьгруппа потоков.
  2. Инициализируйте счетчик и установите его значение 1 с помощью сэмплера бобовой оболочки . Сохраняйте этот сэмплер до начала цикла

    Добавьте следующий код

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

enter image description here

Добавьте цикл while и оставьте набор сэмплеров, которые вы хотите запустить, в цикле. Добавьте следующее условие в цикл while

$ {__ javaScript (parseInt)($ {counter}) <= 15,)} </p>

здесь 15 представляет количество циклов (количество циклов) enter image description here

Добавьте A бобовый постпроцессор к вашему первому сэмплеру в цикле while и добавьте следующий код (для увеличения значения счетчика)

int counter = Integer.parseInt (vars.get ("counter")) +1;vars.put ("counter", Integer.toString (counter));

enter image description here

Следующие сэмплеры в цикле while вставляются с условием if

$ {JMeterThread.last_sample_ok}

Как показано ниже Вы должны сделать это для каждого сэмплера, поскольку мы можем не знать, где произошла ошибка.

enter image description here

В моем случае я хотел запустить цикл 15 раз независимо от ошибок, Вы можете увидеть его выполненным 15 раз даже после получения ошибок enter image description here

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

Пожалуйста, дайте мне знать, если это поможет ..

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