如何在JMeter总时长内均匀分配107个线程?
可以实现你的需求
默认的Thread Group做不到让线程在整个测试总时长(ramp up + duration)内分批启动,它只会在设定的ramp_time(120秒)内把所有107个线程启动完毕,之后线程持续运行到测试结束。要实现「每分钟启动7个线程,在900秒内启动完107个」的需求,需要用到JMeter插件中的自定义线程组组件。
具体实现步骤:
- 安装插件:通过JMeter插件管理器安装「Custom Thread Groups」插件,该插件包含Ultimate Thread Group和Stepping Thread Group,二者均可灵活控制线程启动节奏。
- 替换线程组:删除原有的默认Thread Group,添加「Stepping Thread Group」,该组件更适配分批启动的需求。
- 配置参数:
- 初始线程数:
0 - 每次递增的线程数:
7 - 递增间隔时间:
60(秒,对应每分钟启动一批) - 保持当前线程数的时间:
0(无需保持,直接启动下一批) - 递减相关参数:均设为
0(无需递减线程) - 总线程数上限:
107(确保启动线程总数不超限制)
配置后,JMeter会从测试开始时每60秒启动7个线程,直到满107个为止,最后一批会启动9个(14×7=98,107-98=9),刚好覆盖900秒总时长。
- 初始线程数:
补充说明:
如果选择Ultimate Thread Group,也可以分阶段配置:
- 前14个阶段:每个阶段启动7个线程,阶段间隔60秒
- 第15个阶段:启动9个线程,与前一阶段间隔60秒
这种配置也能达成同样效果,只是Stepping Thread Group的参数设置更简洁。
内容的提问来源于stack exchange,提问作者Sohlae
相关产品推荐
相关产品推荐

