JMeter中如何并发运行多个setUp线程组?
实现多个SetUp线程组并发执行的方法
默认情况下,JMeter的SetUp线程组是按定义顺序串行执行的——一个执行完毕后才会启动下一个。要让你的两个SetUp线程组并发运行,按以下步骤操作:
1. 修改测试计划的全局执行设置
打开测试计划的配置面板,找到Run Thread Groups Concurrently选项并勾选。这个设置会让测试计划内所有线程组(包括SetUp类型)同时启动,实现并发执行。
2. 分别配置两个SetUp线程组
- 第一个初始化用的SetUp线程组:
- 设置线程数为
1,循环次数为1 - 把所有初始化操作的取样器、配置元件放在这个组内
- 设置线程数为
- 第二个循环读文件的SetUp线程组:
- 线程数设为
1(如果需要多线程读文件可调整) - 循环次数设置为你需要的读取次数
- 添加文件读取组件(比如CSV Data Set Config)和对应的业务逻辑取样器
- 线程数设为
3. 可选:控制后续普通线程组的执行时机
如果你的测试计划里还有普通线程组,需要等两个SetUp线程组都完成后再启动,可以这么做:
- 在每个SetUp线程组的最后添加一个BeanShell Sampler,设置全局变量标记完成状态:
props.put("setup1_done", "true");props.put("setup2_done", "true"); - 在普通线程组开头添加While Controller,条件设为:
这样普通线程组会等待两个SetUp都完成后才开始执行。${__jexl3(props.get("setup1_done") != "true" || props.get("setup2_done") != "true",)}
注意事项
- 确保两个SetUp线程组的操作完全无依赖,否则并发可能导致数据不一致或初始化失败
- 勾选
Run Thread Groups Concurrently后,所有线程组都会并行,包括普通线程组,若不需要普通线程组并行,必须通过上述方法控制执行顺序
内容的提问来源于stack exchange,提问作者Kamiccola
相关产品推荐
相关产品推荐

