Jmeter — распределенный (удаленный) Выполнение теста Подчиненное соединение закрыто в середине выполнения

#jmeter

#jmeter

Вопрос:

Я использую Jmeter версии 5.2.1. У меня есть сценарий для имитации 400 параллельных входов в систему, и внутри плана тестирования я буду выполнять тестовые выборки 20 раз, используя контроллер цикла для каждого пользователя (потоков).

Следовательно, для ускорения я выполнил его при удаленном выполнении теста. Обычно 200 потоков с количеством циклов 10 занимают максимум 25 минут. При увеличении количества циклов до 20 одно из соединений подчиненного узла закрылось, и сборка Дженкинса перешла в мертвый цикл.

Я использую AWS M5.xLarge тип экземпляра. 4 процессора / 16 ГБ оперативной памяти. Ниже приведена команда запуска, которую я использую для Jmeter

 JVM_ARGS="-Xms2g -Xmx4g -XX:MaxMetaspaceSize=256m"  amp;amp; export JVM_ARGS amp;amp; ./jmeter -n -t /home/jenkins/workspace/performance-test-staging-pipeline/test_plans/fd_regression_delight.jmx -e -o /home/jenkins/workspace/fd-performance-test-staging-pipeline/Performance-Report -l /home/jenkins/workspace/fd-performance-test-staging-pipeline/JTL-RPT-986.jtl -R xx.xx.xx.xxx,yy.yy.yy.yyy -Jserver.rmi.ssl.disable=true -Dclient.tries=3 -Gthreads=200
 

Ниже приведен журнал сборки, который я вижу в консоли сборки Jenkins.

 summary     2700 in 00:00:59 =   45.4/s Avg:  3259 Min:    98 Max: 32684 Err:     0 (0.00%) Active: 400 Started: 400 Finished: 0
summary =  52102 in 00:25:38 =   33.9/s Avg:  6542 Min:    81 Max: 139355 Err:     0 (0.00%)
 

Ниже приведен журнал, который я вижу в jenkins-server.log

 Connection to xx.x.x.xxx closed by remote host.
Connection to xx.x.x.xxx closed.
 

Ответ №1:

Просматривая эту строку:

 summary =  52102 in 00:25:38
 

кажется, что JMeter выполнил 52102 запроса за 25 минут. Я не знаю, сколько запросов имеет ваш план тестирования, однако я ожидал бы чего-то вроде:

  • для 1 запроса: 400 потоков * 20 циклов * 1 запрос = 8000
  • для 2 запросов: 400 потоков * 20 циклов * 2 запроса = 16000
  • для 3 запросов: 24000 результатов
  • и т.д.

Поэтому убедитесь, что вы указали правильное количество циклов или ограничили продолжительность теста либо на уровне группы потоков, либо с помощью контроллера среды выполнения

Также, когда дело доходит до распределенного тестирования, каждый подчиненный выполняет план тестирования, как есть, если у вас 200 пользователей, установленных в плане тестирования, и есть 1 подчиненный — у вас будет 200 пользователей, для 2 подчиненных у вас будет 400 пользователей, для 3 подчиненных — 600 пользователей и т. Д. Так что, если вам нужноВсего 200 пользователей, которые вы можете захотеть установить -Gthreads=100 , учитывая, что у вас есть 2 подчиненных компьютера

Также обратите внимание на время отклика, кажется, что для некоторых сэмплеров оно превышает 2 минуты, 2 минуты * 20 циклов дают 40 минут общего выполнения

Комментарии:

1. Я вижу, что клиент Jmeter все еще активен даже после завершения. Ниже приведены последние 3 строки в jmeter.log 2020-11-30 10:05:30,138 INFO o.a.j.r.Summariser: summary 15800 in 00:00:29 = 553.8/s Avg: 208 Min: 4 Max: 18558 Err: 13375 (84.65%) Active: 250 Started: 250 Finished: 0 2020-11-30 10:05:30,139 INFO o.a.j.r.Summariser: summary = 66827 in 00:25:45 = 43.2/s Avg: 3204 Min: 4 Max: 130746 Err: 13378 (20.02%) 2020-11-30 10:05:35,875 INFO o.a.j.JMeter: Finished remote host: 10.0.3.245 (1606730735875) Как остановить jmeter после завершения выполнения?

2. Если вы хотите остановить удаленное подчиненное устройство после теста, вы можете определить следующее свойство: jmeterengine.remote.system.exit=true либо в файлах user.properties , либо передав его через -J аргумент командной строки . Дополнительная информация: Руководство по настройке свойств Apache JMeter

3. Все еще возникает та же проблема. Ниже приведена команда запуска клиента Jmeter «JVM_ARGS=»-Xms10g -Xmx10g» ./jmeter -n -t /home/jenkins/workspace/release-performance-test-staging-pipeline/test_plans/ delights/regression.jmx -e -o /home/jenkins/workspace/release-performance-test-staging-конвейер / Отчет о производительности -l /home/jenkins/workspace/release-performance-test-staging-конвейер / JTL-FD-1002.jtl -R xx.x.x.xxx,yy.y.y.yyy -Jserver.rmi.ssl.disable=true -Dclient.tries=3 -Gthreads= 125 -Jjmeterengine.remote.system.exit=true -X «

4. Дмитрий, я вижу, что подчиненная машина отключилась в середине выполнения. Мы используем экземпляр Spot. « Соединение с xx.x.x.xxx закрыто удаленным хостом. Соединение с yy.yy.yyy закрыто. « В чем может быть причина?

Ответ №2:

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