В JMeter этого можно достичь, используя Таймер постоянной пропускной способности на уровне плана тестирования.
Таймер постоянной пропускной способности позволяет вам поддерживать пропускную способность вашего сервера (запросов / сек). Таймер постоянной пропускной способности способен только приостанавливать потоки JMeter, чтобы замедлять их и достигать целевой пропускной способности. Кроме того, он работает только на минутном уровне, поэтому вам нужно правильно рассчитать период разгона и позволить вашему тесту работать достаточно долго.
Давайте посмотрим кратко об этом:
Для достижения целевой пропускной способности вам необходимо иметь достаточное количество потоков в плане тестирования.
Чтобы рассчитать количество потоков, необходимых для этого теста, вы можете использовать следующую формулу:
RPS * максимальное время отклика в секундах
В вашем случае, если вам нужно 20 RPS и ваше максимальное время ответа составляет 60 секунд, вам нужно как минимум 1200 (20*60=1200
) потоков в вашем плане тестирования.
Поскольку таймер постоянной пропускной способности работает на минутном уровне, для достижения значения 20 RPS
необходимо настроить значение « Target Throughput » на 1200/min
и «Рассчитать пропускную способность на основе» значение как "All active threads
".
Конфигурация таймера с постоянной пропускной способностью:
Теперь, если в вашем плане тестирования имеется более одного запроса (т. Е. 4 requests
), тогда 1200 requests/min
будет распределено среди 4 samplers
. Это означает, что вы получите 5RPS
для каждого сэмплера.
Теперь для конфигураций Thread Group , как вы упомянули "Рассчитать пропускную способность на основе значения" в таймере постоянной пропускной способности для "All active threads
", так что все ваши * Для достижения этого 20 RPS
необходимо запустить 1049 * потоков на сервере. Используйте Ramp-Up Period config для контроля запуска этих потоков.
Период разгона - это время, в которое все потоки поступают на ваш протестированный сервер приложений. Так что, если вы используете 60 seconds
, то для запуска всех ваших 1200 threads
потребуется 60 секунд. 1200 потоков будут активны в 60 seconds
.
Вам также необходимо соответствующим образом установить продолжительность теста. Скажем, вы хотите оставить это 20 RPS
для 5 minutes
. В этом случае вы должны установить продолжительность теста на 7 mins
(дополнительно 2 минуты для: начиная с 1 минуты для 1200 потоков до запуска, что является временем разгона и последними 1 минутой для времени разгона 1200 потоков). Не забудьте проверить счетчик циклов до Forever
, если вы используете Группа потоков .
Конфигурация группы потоков для вышеупомянутого сценария:
Вы также можете использовать другой удобный плагин JMeter, который является Ultimate Thread Group , если вас путают конфигурации по умолчанию Thread Group . Вы можете загрузить плагины JMeter с помощью JMeter Plugins Manager .
Вот конечная конфигурация группы потоков для вышеупомянутого сценария:
Теперь, когда тест завершен, вы можете проверить результаты 5 minutes
, в которых все ваши 1200 потоков были активны, с помощью прослушивателей хитов в секунду , а также активных потоков с течением времени Слушатель .
Не используйте JMeter GUI для нагрузочного тестирования, используйте режим без графического интерфейса. Также удалите утверждения, если они есть в вашем плане тестирования, пока вы пытаетесь достичь некоторого целевого показателя RPS.