JMeter - не удается выполнить 15 000 запросов за 5 минут, даже если сервер способен на это - PullRequest
0 голосов
/ 07 июня 2019

У меня проблема с JMeter, которую я не могу понять.

У меня 3 запроса в одной группе потоков. Каждый запрос должен быть выполнен 5000 раз за 5 минут, что означает, что мне нужно выполнить 15 000 запросов за 5 минут.

Группа потоков настроена так:

Number of threads (users): 50
Ramp-up period: 1
Loop count: forever
Duration (seconds): 300

Каждый запрос имеет постоянный таймер пропускной способности:

Target throughput: 1000.0
Calculate Throughput based on: all active threads in current thread group

А результаты после выполнения теста составляют около 2000-3000 запросов, и это слишком мало. Я не могу понять, какие настройки неверны.

Тесты выполняются в режиме без графического интерфейса на виртуальной машине Azure с Intel Xeon E5-2673 @ 2,3 ГГц с 16 ядрами и 32 ГБ ОЗУ, и сервер более чем способен выполнять больше запросов, поскольку время отклика составляет около 1 секунда, поэтому аппаратное обеспечение не должно создавать проблем. Память кучи JMeter установлена ​​на 12 ГБ.

Любая помощь приветствуется!

Ответы [ 4 ]

0 голосов
/ 12 июня 2019

Попробуйте использовать Stepping thread group.Это позволит вам отправлять 50 пользователей в секунду до 300 секунд.

Скачать банку по ссылке ниже.

https://jmeter -plugins.org / wiki / SteppingThreadGroup /

0 голосов
/ 09 июня 2019

Для достижения желаемого значения настройте следующее

Number of threads (users): 50 / 60
Ramp-up period: 30
Loop count: forever
Duration (seconds): 300

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

Target throughput (in minutes): 3000.0
Calculate Throughput based on: all active threads in current thread group

Так что теперь, через 1 минуту, JMeter попытается отправить 3000 запросов, а через 5 минут количество запросов будет примерно равно15000.

0 голосов
/ 11 июня 2019

Вот несколько рекомендаций по выполнению таких тестов:

  1. Используйте Ultimate Thread Group для создания потоков, необходимых для запуска ваших тестов.
  2. Увеличьте общее количество потоков до 150-200. В зависимости от времени ответа на ваши запросы 50 потоков могут быть заняты, и вы не сможете масштабировать сверх определенной пропускной способности.
  3. Добавьте таймер формирования пропускной способности в группу потоков Ultimate, чтобы поддерживать пропускную способность 50RPS в течение 5 минут (300 секунд).

Комбинация Ultimate Thread Group и таймера формирования пропускной способности позволит вам детально контролировать ваши запросы и количество запросов в секунду, которых вы хотите достичь.

Установите группу нитей Ulitmate и таймер формирования пропускной способности, как показано ниже.

JMeter Script Structure Ultimate Thread Group Config Throughput Shaping Timer Config

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

0 голосов
/ 07 июня 2019

У меня 3 запроса в одной группе потоков. Каждый запрос должен быть выполнен 5000 раз за 5 минут, что означает, что мне нужно выполнить 15 000 запросов за 5 минут.

Это означает, что вы должны выполнить группу потоков 5000 раз за 5 минут => 300 секунд. Если вы выполняете группу потоков так много времени, вы автоматически генерируете 15 000 запросов.

С Документация : -

Loop Count Количество раз для выполнения тестового примера. В качестве альтернативы можно выбрать «навсегда», заставляя тест выполняться до тех пор, пока он не будет остановлен вручную.

Когда вы устанавливаете loop count: forever или любое значение в loop count в этом отношении, это означает, что вы хотите следующий набор пользователей (потоков) [который вы определили как 50 сейчас], только когда вы закончите с первый набор запросов 50 пользователей (150 запросов для каждой группы потоков как 3 запроса). Теперь этот запрос 50 пользователей может занять неожиданное время, и ваш следующий набор будет возвращен только после того, как эти 50 пользователей будут выполнены.

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

Number of threads (users): 5000
Ramp-up period: 300
Loop count: 1

Таким образом, это означает, что через каждую секунду около 17 потоков будут вставлены на борт.

...