我需要编写模拟真实用户交互的加特林场景。它应该偶尔发出一些请求,例如每个用户每小时 10 个(总共 20 个用户)。
根据我在文档中看到的,constantUsersPerSec
接受 double ,但在 reachRps
时四舍五入在节流中只处理秒数。因此,不能少于 1 rps。
可以使用 Gatling 编写这样的场景吗?
最佳答案
所以你的场景看起来像“2小时,每6分钟发送一个请求”或“在2小时内以每小时10个用户的恒定速率......”。
选项1constantUsersPerSec
在将其乘以持续时间的秒数后,在内部四舍五入为 int。因此,应根据速率选择持续时间,以使结果大于 1。
在你的情况下,
def perHour(rate : Double): Double = rate / 3600
constantUsersPerSec(perHour(10)) during(2 hours)
这将导致10/3600 个用户 * (2 * 60 * 60) 秒 = 20 个用户
选项 2
通过注入(inject)步骤
setUp(
scn.inject(
atOnceUsers(1),
nothingFor(6 minutes),
atOnceUsers(1),
nothingFor(6 minutes),
//... and so forth...
)
)
或在第二种方法中产生注入(inject)步骤def injections(): List[InjectionStep] = List(...)
setUp(scn.inject(injections : _*))
关于scala - Gatling 场景,每小时 10 个请求(少于 1 rps),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403812/