Режим графического интерфейса Jmeter не останавливает выполнение при достижении условия остановки (несколько потоков не могут быть остановлены)

#multithreading #jmeter #jmeter-plugins #jmeter-5.0 #threadgroup

Вопрос:

Я использую Jmeter 5.2.1 с «классической» группой потоков, чтобы смоделировать сценарий стресса, в котором нагрузка непрерывно увеличивается-до 400 потоков в течение 2 часов. Я добавил прослушиватель автозапуска, который должен останавливать выполнение скрипта, когда среднее время отклика превышает 4000 в течение 20 секунд или частота ошибок превышает 1% в течение 20 секунд.

Ниже приведен скриншот группы потоков, где вы также можете увидеть время, показанное в правом верхнем углу (более 2 часов), которое все еще продолжается во время этого (таймер не останавливается), а также журнал, в котором показано, что прослушиватель автозапуска запустил условие остановки, и потоки начали останавливаться, и на другом скриншоте вы можете видеть, что в журнале записывается много операторов «Поток завершен», но я думаю, проблема в том, что несколько потоков каким-то образом зависли, и jmeter не может их остановить.

введите описание изображения здесь
введите описание изображения здесь

Обновление: Добавление еще одного снимка экрана после нажатия кнопки «Стоп» в графическом интерфейсе jmeter. Обратите внимание на промежуток времени между последним журналом и временем, когда я нажимаю кнопку «Стоп». Там вы можете видеть, что только после того, как я нажму кнопку, только тогда я получу сообщения журнала, такие как: Остановка: Группа потоков 1-1 Прерывание: Группа потоков 1-1 Остановка из-за времени окончания, обнаруженного потоком: Группа потоков 1-1 И в конце: Уведомление слушателей теста об окончании теста

введите описание изображения здесь

Может кто-нибудь, пожалуйста, помочь мне понять это поведение? Почему выполнение не останавливается само по себе?

Ответ №1:

При запуске JMeter отображается следующее сообщение:

введите описание изображения здесь

таким образом, вы не должны использовать графический интерфейс JMeter ни для чего, кроме разработки и отладки тестов, когда дело доходит до выполнения тестов, вы должны запускать JMeter в режиме командной строки без графического интерфейса, например:

 jmeter -n -t /path/to/your/testplan.jmx -l /path/to/results.jtl
 

по завершении теста вы можете создать панель мониторинга отчетов в формате HTML для анализа результатов

Если вам нужно наблюдать за показателями в режиме реального времени, вы можете использовать серверный прослушиватель или платформу Taurus