每小时 10 个请求的 Gatling 场景(小于 1 rps)

Gatling scenario with 10 requests per hour (less that 1 rps)

我需要编写模拟真实用户交互的 Gatling 场景。它应该偶尔发出一些请求,例如每个用户每小时 10 个(总共 20 个用户)。

根据我在文档中看到的内容,constantUsersPerSec 接受双精度但它是四舍五入的,而 reachRps 在节流中只处理秒数。所以,不能低于 1 rps。

可以用加特林写这样的场景吗?

所以您的场景看起来像是“2 小时内,每 6 分钟发送一个请求”或“在 2 小时内以每小时 10 个用户的恒定速率......”。

选项 1

constantUsersPerSec 在 乘以持续时间的秒数后在内部四舍五入为 int 。所以应该根据速率选择时长,使结果大于1。

在你的情况下,

def perHour(rate : Double): Double = rate / 3600

constantUsersPerSec(perHour(10)) during(2 hours)

这会导致

10/3600 个用户 * (2 * 60 * 60) 秒 = 20 个用户

选项 2

通过注入步骤

setUp(
  scn.inject(
    atOnceUsers(1),
    nothingFor(6 minutes),
    atOnceUsers(1),
    nothingFor(6 minutes),
    //... and so forth...
  )
)

或在第二种方法中生成注入步骤

def injections(): List[InjectionStep] = List(...)

setUp(scn.inject(injections : _*))