JMeter中Parallel Controller与Throughput Controller组合使用问题求助
解决JMeter并行请求+负载占比配置问题
问题分析
你的两个配置都存在逻辑层级或参数设置的问题:
- setup1:吞吐量控制器(Throughput Controller)默认采用「Per Thread(每个线程)」模式,该模式按单个线程的执行次数占比计算,而非整体请求的总占比,因此无法达到预期的50%/30%/20%负载分配效果。
- setup2:并行控制器(bzm-Parallel Controller)直接作为线程组的子元素,内部嵌套的吞吐量控制器因概率性跳过逻辑,导致大部分情况下内部请求不执行,最终仅API Req 6被正常触发。
正确配置方案
调整吞吐量控制器的计算模式,保持「先按比例选组,再组内并行」的层级结构:
#TestPlan ##Ultimate Thread Group > Throughput Controller_1_HomePage (50%) > 配置项:将「Calculate Throughput based on」设置为 **Percent of Total Executions** >> bzm-Parallel Controller >>> API Req 1 >>> API Req 2 >>> API Req 3 > Throughput Controller_2_HomePage (30%) > 配置项:将「Calculate Throughput based on」设置为 **Percent of Total Executions** >> bzm-Parallel Controller >>> API Req 4 >>> API Req 5 > Throughput Controller_3_NextPage (20%) > 配置项:将「Calculate Throughput based on」设置为 **Percent of Total Executions** >> API Req 6
关键配置说明
- 吞吐量控制器模式调整:
选择「Percent of Total Executions」后,JMeter会基于所有请求的总执行次数计算占比,而非单个线程的执行次数,能严格保证50%/30%/20%的负载分配比例。 - 层级逻辑合理性:
先通过吞吐量控制器筛选要执行的请求组,再在组内用并行控制器实现请求并行,既满足负载占比要求,又保留并行执行特性。 - 辅助验证建议:
- 确保Ultimate Thread Group的线程数或循环次数足够多(比如总执行次数≥100),避免因样本量太小导致百分比精度误差。
- 运行后查看「Summary Report」,核对每个请求组的执行次数占比是否符合预期。
内容的提问来源于stack exchange,提问作者Finch
相关产品推荐
相关产品推荐

