我需要编写将模仿真实用户交互的Gatling场景.它应该偶尔发出一些请求,例如每个用户每小时10个(共20个用户).
从我在文档中看到的情况来看,constantUsersPerSec接受double但是它是舍入的,而限制中的reachRps只接受秒.所以,不要少于1 rps.
可以使用Gatling编写这样的场景吗?
最佳答案 因此,您的方案似乎是“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 : _*))