每小时 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 : _*))
我需要编写模拟真实用户交互的 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 : _*))