如何在侦破中设置停机时间?

时间:2019-05-29 22:20:04

标签: load-testing gatling scala-gatling

我有一个jmeter脚本,可以在20分钟内增加20个用户(每分钟1个用户),并保持30分钟,然后每分钟减少1个用户。

我如何在加特林实现这一目标?

我尝试在加特林机上进行以下设置

SAAPIBase.scn_SA_Auth.inject(rampUsers(20) during (20 minutes)).protocols(httpConf)
).maxDuration(50 minutes)

这会使20个用户增加20分钟,并与20个用户保持30分钟。但是在那之后突然下降到零。

我如何每分钟逐步降低1个用户的数量?

1 个答案:

答案 0 :(得分:0)

请注意,模拟的运行时间会受到所运行场景的严重影响-所有可收集DSL注入步骤都会控制 用户何时开始,仅此而已。因此,如果您的方案运行时间很长或无法预测,那么很难保证完全符合您的指定要求。

在您的示例中

.inject(rampUsers(20) during (20 minutes)).protocols(httpConf)
).maxDuration(50 minutes)

您在20分钟内平均注入20位用户(因此每分钟注入1位)。如果确实在渐变之后将其保留了30分钟,则您的场景可能正在循环播放,并且用户会被maxDuration语句阻止。

对于减速,您可以将喷射量更改为

.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之类的循环来保持运行,则这种减速将不会起作用,因为在第一个命令中注入的用户将永远不会停止。