我正在尝试使用加特林进行负载测试,但我无法让它按我想要的方式工作。
我有 3 个场景应该按顺序运行根据 Gattle 文档 我应该使用
andThen
来实现这一点,所以这是我的代码:
init {
setUp(
scenario1.injectOpen(
rampUsersPerSec(startRate).to(maxRate).during(rampupSeconds),
constantUsersPerSec(maxRate).during(plateauSeconds),
).andThen(
scenario2.injectOpen(
rampUsersPerSec(startRate).to(maxRate).during(rampupSeconds),
constantUsersPerSec(maxRate).during(plateauSeconds),
)
).andThen(
scenario3.injectOpen(
rampUsersPerSec(startRate).to(maxRate).during(rampupSeconds),
constantUsersPerSec(maxRate).during(plateauSeconds),
),
)
)
.maxDuration(3 * (rampupSeconds + plateauSeconds))
.assertions(
...
)
}
每个场景都由一个请求和
maxRate = 2000
组成,但是当我运行负载测试时,我发现 rps
远高于 2000
,我不明白为什么。
奇怪的是,有时它工作正常,其他
rps
变得大约4.5K
我做错了什么?
maxRate 是虚拟用户到达率,而不是每秒的请求数。仅当您的场景仅包含一个请求时,它们才相等。