Мне нужно две отдельные группы потоков, которые будут выполняться (вторая группа имеет бесконечное количество циклов). И когда первая группа будет остановлена, вторая. Как определить, когда первая группа будет выполнена?JMeter. Как определить, когда группа потоков завершена
1
A
ответ
3
Это работа для меня:
- Крит "BeanShell препроцессор" с этим кодом:
props.put("DONE", "FALSE");
- Создать "BeanShell постпроцессор" с этим кодом:
int activeThreadCount = org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads(); if (activeThreadCount <= 1) { props.put("DONE", "TRUE"); }
Добавить Если Контроллер с:
${__BeanShell(props.get("DONE") != null && props.get("DONE")=="TRUE")}
Остановить текущую резьбу внутри Если контроллер.
2
Вы можете прикрепить постпроцессор к первой группе потоков, которая устанавливает значение флага в свойстве.
Ваша вторая нитьгруппа будет содержать цикл, пока свойство не будет содержать значение флага, которое вы ожидаете.
0
Вы можете использовать следующее решение:
Group Тема 1
Beanshell Sampler - props.put ("конец", "FALSE");
HTTP1
http2
....
Beanshell Sampler - props.put ("конец", "TRUE");
Group Тема 2
Хотя контроллер - $ {__ BeanShell (! Props.get ("конец") = нуль || props.get ("конец") == "TRUE")}
HTTP1
HTTP2
....
Надеюсь, это поможет.
Да, я думал об этом, но все постпроцессоры выполняются после того, как каждый образец не после завершения группы. – Alexandr
Вы можете прикрепить постпроцессор к группе потоков, и он будет выполняться после всех пробоотборников. или вы можете прикрепить его к последнему образцу в группе. – CharlieS
Как подключить постпроцессор группы потоков? Помощник сказал, что все обработчики pre/post, выполненные до/после образца. Вы можете проверить это, поставив BeanShell PostProcessor с линией 'log.info (« Run post-processing »);' – Alexandr