Jmeter как посылать постоянное количество запросов каждую секунду - PullRequest
0 голосов
/ 19 февраля 2020

Позволяет ли JMeter отправлять постоянное количество запросов каждую секунду, а не последовательно только после завершения запроса? т.е. я могу отправить запрос 2 после запроса 1, даже если запрос 1 еще не завершил ответ?

Я использую Apache JMeter 5.2.1, я был бы признателен, если бы кто-нибудь мог дать мне указания по этому поводу. Таймер постоянной пропускной способности, кажется, больше фокусируется на пропускной способности, однако я бы хотел просто отправить X req / s.

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Таймер постоянной пропускной способности способен только на приостановку потоков JMeter для ограничения количества запросов в секунду для данного значения.

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

Итак, основные ограничения:

  • Таймер постоянной пропускной способности может только замедлять работу JMeter, он не будет запускать дополнительные потоки
  • Таймер постоянной пропускной способности достаточно точен на «минутный» уровень, если ваш тест длится меньше или вы хотите увидеть немедленные изменения пропускной способности, вам нужно поиграть с нарастанием

Так что я бы рекомендовал вместо этого использовать один из следующих подходов:

  1. Точный таймер пропускной способности (доступно с JMeter 4.0 )
  2. Группа потоков параллелизма и Формирование пропускной способности Комбинация таймеров , эти парни обеспечивают наиболее гибкий способ достижения / поддержания желаемой пропускной способности
0 голосов
/ 23 февраля 2020

Решение, которое я в итоге обнаружил, было довольно простым. Если я решу, что мне нужно сделать в общей сложности 5000 запросов, и я хочу следовать парадигме отправки 2 запросов каждую секунду, независимо от того, был ли получен ответ или нет. Я могу просто использовать это использовать период нарастания.

"Нарастание" - время, необходимое для запуска всех потоков

Так что если вы хотите N запросов каждую секунду и хотите отправить Всего запросов M, вам нужно установить период увеличения как M / N в моем случае 5000/2 = 2500. Кроме того, нет необходимости иметь несколько итераций.

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

...