Как приостановить все группы потоков на определенном шаге до завершения процесса в другой группе потоков - Jmeter - PullRequest
0 голосов
/ 11 мая 2018

У меня есть сложный сценарий, который я хочу встроить в план тестирования Jmeter.У меня есть план тестирования с некоторыми тестами, которые я хочу запустить одновременно.Я создал 3 группы потоков, проблема в том, что я хочу, чтобы группа потоков 2 + 3 удерживалась на шаге 2 до тех пор, пока группа потоков 1 (внешние процессы) не будет завершена.(внешний процесс состоит в том, чтобы запустить задание jenkins, использующее данные, созданные на этапах 1 + 2 в моей системе. Если jenkins не завершил, все последующие этапы 3 - 100 завершатся неудачно), сложность заключается в том, что я хочу, чтобы все потокиначните работать вместе, группы потоков (= тесты) 2 + 3 будут удерживаться после шага 2, и дождитесь завершения внешнего процесса группы потоков 1 и продолжите выполнение.Этот сценарий можно сделать в Jmeter?без использования задержки в потоке 2 + 3?Посмотрите на прилагаемое изображение того, что я хочу создать

** шаги 1 + 2 в test2 + 3 должны выполняться до внешнего процесса, а шаг 3 должен выполняться после внешнего процесса

[enter image description here] [план тестирования]

[enter image description here] [полный план тестирования - шаг 3 в тесте 2 + 3 должен выполняться после внешней прецессии]

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

После борьбы с решением, которое я нашел с солнечной помощью, используется while while + системные свойства.Я создал первый флаг группы потоков и начал его с 0. flag - системная переменная, поэтому я использую команду props.put ("flag", flag).Во второй группе потоков я использовал цикл while с ${__javaScript(props.get("_flag") == 0)} в качестве условия.Я использовал сэмплер Test Action и поместил его в цикл while с действием Pause и длительностью 5000 миллисекунд - чтобы цикл проверял флаг каждые 5 секунд.после выполненных работ я помещаю системную переменную flag = 1. и цикл останавливается

0 голосов
/ 13 мая 2018

Пожалуйста, проверьте план ниже, и я думаю, что он должен работать: -

enter image description here

Группа потоков 1: - выполнение тестового действия в течение 5 секунд перед выполнением внешнего процесса (только для моделирования). Затем регулярное выражение для получения значения из ответа. В моем примере это «5» в ответе фиктивного сэмплера (внешнего процесса). Затем я использую постпроцесс JSR223, чтобы установить его как свойство.

enter image description here

Группа потоков 2 и 3: - Используется в то время как контроллер контролирует свойство, установленное в группе потоков 1, и, если нет, тогда задерживает на 1 сек. Вы можете использовать какой-то другой сэмплер, например JSSR223, для регистрации или пустышки, если вы не хотите «Test Action» для ожидания ниже, пока контроллер.

enter image description here

Таким образом, группа потоков будет приостановлена ​​в то время как и продолжит, как только получит значение свойства.

Ниже попытка сближения с флагом: -

Препроцессор для сброса значения во что-то еще для управления циклом. enter image description here

На основе последнего результата выборки задайте свойство с помощью JSR223. enter image description here

Это то, что используется в цикле while. enter image description here

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