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