Я недавно начал использовать gatling для тестирования производительности и нагрузки. Согласно их документации есть несколько способов отправки одновременных запросов, например:Тесты Gatling увеличивают количество постоянных пользователей в секунду после шаблона
rampUsersPerSec(1) to(100) during(1 minute)
, который должен увеличивать количество пользователей в секунду линейно, однако он имеет много случайности. То, что я хотел бы сделать, - отправить постоянное количество запросов в секунду, затем приостановить, затем увеличить число пользователей на один и повторить. Что-то вдоль линий:
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class PricesSimulation extends Simulation {
// ...
// ...
object GetPrices {
// ...
}
val httpConf = http.baseURL("https://...")
val scn = scenario("scenario1").exec(...)
setUp(
scn.inject(
constantUsersPerSec(1) during(5 seconds),
nothingFor(5 seconds),
constantUsersPerSec(2) during(10 seconds),
nothingFor(5 seconds),
constantUsersPerSec(3) during(10 seconds),
nothingFor(5 seconds),
constantUsersPerSec(4) during(10 seconds),
nothingFor(5 seconds),
constantUsersPerSec(5) during(10 seconds)
// ...
constantUsersPerSec(100) during(10 seconds)
).protocols(httpConf)
)
}
Поэтому в основном я пытаюсь свести все в setUp
к для цикла, где я увеличиваю ARG из constantUsersPerSec одного (или эквивалент). Однако мои знания scala очень ограничены, и я неудачно потерпел неудачу ...