我需要编写将模仿真实用户交互的Gatling场景。它应该偶尔发出一些请求,例如每位用户每小时10个(共20个用户)。
根据我在文档中看到的内容,constantUsersPerSec
接受双倍,但它是四舍五入的,而限制中的reachRps
仅接受秒数。所以,不要小于1 rps。
可以使用Gatling编写这样的场景吗?
答案 0 :(得分:1)
因此,您的情况似乎是" 2小时,每6分钟发送一次请求"或者"在2小时内以每小时10个用户的恒定速率..."。
在将其乘以持续时间的秒数之后,constantUsersPerSec
在内部舍入为int 。因此,应根据速率选择持续时间,以使结果大于1.
在你的情况下,
def perHour(rate : Double): Double = rate / 3600
constantUsersPerSec(perHour(10)) during(2 hours)
这会导致
10/3600用户*(2 * 60 * 60)秒= 20位用户
通过注射步骤
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 : _*))