指定copies:1时nBomber仍执行数百次,原因何在?
问题原因
你误解了Simulation.KeepConstant里copies参数的意思:
copies代表的是同时运行的虚拟用户(VU)数量,不是Step的执行次数。- 当你设置
copies:1且during:10秒时,这个唯一的VU会在10秒内不断重复执行Step——只要当前Step跑完,就立刻启动下一次执行,直到10秒测试时长结束,所以才会看到几百次输出。
解决方案:让Step仅执行一次
如果想让整个测试周期里Step只跑一次,有两种简单方法:
方法1:用Simulation.Inject控制VU注入
Inject可以指定一次性注入指定数量的VU,每个VU只执行一次Scenario:
var scenario = ScenarioBuilder.CreateScenario("LotsOfConnections", connectStep) .WithLoadSimulations(Simulation.Inject(1, TimeSpan.Zero));
方法2:给Scenario设置迭代次数限制
通过WithIterations强制每个VU只执行一次Scenario,哪怕测试时长还没到:
var scenario = ScenarioBuilder.CreateScenario("LotsOfConnections", connectStep) .WithIterations(1) .WithLoadSimulations(Simulation.KeepConstant(copies: 1, during: TimeSpan.FromSeconds(10)));
内容的提问来源于stack exchange,提问作者pantonis
相关产品推荐
相关产品推荐

