Gatling не отправляет указанное количество запросов в секунду

Я тестирую свой API с кодом ниже gatling3

setUp(scn.inject(constantUsersPerSec(300) during (10 minutes))).throttle(
reachRps(300) in (10 seconds),
holdFor(5 minutes),
reachRps(500) in (10 seconds),
holdFor(5 minutes)
).protocols(httpProtocol)

я ожидаю, что в первые 5 минут gatling отправляет 300 запросов в секунду, а в следующие 5 минут gatling отправляет 500 запросов в секунду. Однако отчет о тестировании показывает, что gatling отправляет 300 запросов в секунду за все 10 минут.

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

почему это происходит?


person danny    schedule 20.03.2019    source источник
comment
Каждый пользователь отправляет 1 запрос? Throttle будет ограничивать максимальное количество отправленных запросов, но не гарантирует минимум, поэтому, если эти 300 постоянных пользователей в секунду отправляют только 300 запросов в секунду, то невозможно достичь 500 запросов в секунду.   -  person Mateusz Gruszczynski    schedule 23.03.2019


Ответы (2)


Вам нужно сделать что-то похожее на это:

setUp(scn.inject(constantUsersPerSec(500) during (10 minutes))).throttle(
reachRps(300) in (10 seconds),
holdFor(5 minutes),
reachRps(500) in (10 seconds),
holdFor(5 minutes)
).protocols(httpProtocol)

Дроссельная заслонка будет верхним пределом вашего теста, поэтому, если у вас есть постоянное количество пользователей в секунду, равное 500, но дросселируя его на 300, он останется ограниченным до 300, но затем, как только вы увеличите дроссель до 500, вы должны увидеть число оборотов в секунду. поднимитесь до этого порога, учитывая, что constantUsersPerSec(500) дает вам достаточно трафика, чтобы добраться до этой точки.

person Brett Reinhard    schedule 02.05.2019

Я думаю, что период, показанный на вашем графике, является начальным периодом теста, где к 12:21 с ~ 12:31 достигается 300 оборотов в секунду. после этого гатлинг продержится 5 минут, а затем сделает 500 оборотов в секунду еще на 10 секунд. Вы ждали 10с + 5 мин + 10с + 5мин?

person Thiago Virgilio    schedule 21.03.2019