如何设置加特林的减速时间?
How to setup ramp down time in gatling?
我有一个 jmeter 脚本,可以在 20 分钟内增加 20 个用户(每分钟 1 个用户)并保持 30 分钟,然后每分钟减少 1 个用户。
我如何在 Gatling 中实现这一点?
我在 gatling 中尝试了以下设置,
SAAPIBase.scn_SA_Auth.inject(rampUsers(20) during (20 minutes)).protocols(httpConf)
).maxDuration(50 minutes)
这会增加 20 名用户 20 分钟,并在 20 名用户的情况下保持 30 分钟。但在那之后突然降为零。
如何每分钟缓慢减少 1 个用户?
请注意,您的模拟运行时间受到您所处场景的严重影响 运行 - 所有加特林 DSL 注入步骤控制 何时 用户开始,并且是全部。因此,如果您的场景很长 运行 或不可预测,那么很难保证与您指定的完全一样。
在你的例子中
.inject(rampUsers(20) during (20 minutes)).protocols(httpConf)
).maxDuration(50 minutes)
你在 20 分钟内平均注入 20 个用户(所以每分钟一个)。如果在斜坡之后确实保持了 30 分钟,那么您的场景可能正在循环并且用户会被 maxDuration 语句停止。
对于 ramp-down,您可以将注射更改为
.inject(
rampConcurrentUsers(1) to(20) during(20 minutes),
constantConcurrentUsers(20) during (30 minutes),
rampConcurrentUsers(20) to(1) during(20 minutes)
)
这将在 20 分钟内为您提供相同的加速,然后在其他人完成操作后继续注入用户,在接下来的 30 分钟内维持 20 个并发用户,然后在最后 20 分钟内逐渐减慢注入速度。但是,如果您的场景使用 .forever 之类的循环来保持 运行,此 ramp-down 将不起作用,因为在第一个命令中注入的用户将永远不会停止。
我有一个 jmeter 脚本,可以在 20 分钟内增加 20 个用户(每分钟 1 个用户)并保持 30 分钟,然后每分钟减少 1 个用户。
我如何在 Gatling 中实现这一点?
我在 gatling 中尝试了以下设置,
SAAPIBase.scn_SA_Auth.inject(rampUsers(20) during (20 minutes)).protocols(httpConf)
).maxDuration(50 minutes)
这会增加 20 名用户 20 分钟,并在 20 名用户的情况下保持 30 分钟。但在那之后突然降为零。
如何每分钟缓慢减少 1 个用户?
请注意,您的模拟运行时间受到您所处场景的严重影响 运行 - 所有加特林 DSL 注入步骤控制 何时 用户开始,并且是全部。因此,如果您的场景很长 运行 或不可预测,那么很难保证与您指定的完全一样。
在你的例子中
.inject(rampUsers(20) during (20 minutes)).protocols(httpConf)
).maxDuration(50 minutes)
你在 20 分钟内平均注入 20 个用户(所以每分钟一个)。如果在斜坡之后确实保持了 30 分钟,那么您的场景可能正在循环并且用户会被 maxDuration 语句停止。
对于 ramp-down,您可以将注射更改为
.inject(
rampConcurrentUsers(1) to(20) during(20 minutes),
constantConcurrentUsers(20) during (30 minutes),
rampConcurrentUsers(20) to(1) during(20 minutes)
)
这将在 20 分钟内为您提供相同的加速,然后在其他人完成操作后继续注入用户,在接下来的 30 分钟内维持 20 个并发用户,然后在最后 20 分钟内逐渐减慢注入速度。但是,如果您的场景使用 .forever 之类的循环来保持 运行,此 ramp-down 将不起作用,因为在第一个命令中注入的用户将永远不会停止。