You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JMeter中同时执行多个并行控制器?

解决方案

1. 调整脚本结构,实现真正的并行执行

你当前的脚本结构是单个线程组下包含2个Parallel Controller,这会导致每个线程需要依次完成这两个Parallel Controller的逻辑,无法实现跨线程的并行。正确的结构应该是:

  • 创建两个独立的线程组,每个线程组对应一个扫描任务(即原Parallel Controller下的Simple Controller+10个API请求)
  • 开启JMeter的线程组并行执行功能:
    • 打开JMeter安装目录下的bin/jmeter.properties文件
    • 找到testplan_threadgroups_in_parallel配置项,将其值改为true
    • 重启JMeter生效
      或者使用JMeter插件的Parallel Thread Group,可以更灵活地控制线程组并行。

2. 确保CSV条码数据不重复且有序取数

在CSV Data Set Config中设置:

  • Sharing Mode选择All threads,这样两个线程组的所有线程会共享CSV的行指针,依次读取不同的条码,避免重复取数
  • 确保CSV文件中的条码按预期顺序排列,保证两个线程组能依次获取相邻的条码

3. 精准同步扫描动作

如果需要两个扫描动作严格在同一时间触发,添加Synchronizing Timer到每个线程组的第一个API请求之前:

  • 设置Number of Simultaneous Users to Group By为2,这样两个线程会等待对方到达定时器后,同时执行后续的扫描API
  • 可以设置Timeout in milliseconds(比如10000),避免线程无限等待

4. 优化线程启动配置

将线程组的Ramp-Up Period(启动时间)设置为0,让两个线程立即启动,避免因启动延迟导致的执行顺序偏差;线程数保持为1(每个线程组1个线程),这样两个线程组各启动1个线程,刚好对应两个并行的扫描任务。

补充说明

如果必须使用单个线程组,也可以将两个扫描逻辑放到同一个Parallel Controller下,让它们在同一个线程内并行执行,但这种方式的并行度依赖于JMeter的线程内调度,不如多线程组并行稳定。

内容的提问来源于stack exchange,提问作者Tushar Chaudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:02:35