scala - Gatling 场景,每小时 10 个请求(少于 1 rps)

标签 scala gatling

我需要编写模拟真实用户交互的加特林场景。它应该偶尔发出一些请求,例如每个用户每小时 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/

相关文章:

performance - 加特林进纸器问题 : No attribute name 'CSVFieldName' is defined issue

scala - 是否可以在扩展的 Scala 类中扩展方法?

java - 将 scala.collection.iterator 对象放入 scala 类构造函数中

scala - 结构化流式自定义重复数据删除

java - Flyway迁移(多项目): run SBT command for main module,但不是子模块

scala.tools.reflect.ToolBoxError 异常

scala - 有什么办法可以获得 Gatling "Report ID"吗?

scala - 调试 session

scala - A => (B, C) 到 A => (C, B) 的惯用函数变换

scala - 当盖特林测试失败率过高时,maven-build失败