使用bzm-Concurrency Thread Group与Constant Throughput Timer采样数超标求助
解决Constant Throughput Timer吞吐量超标的问题
常见原因及解决办法
1. 修正Timer作用范围
- 确保Constant Throughput Timer作用于整个测试计划,而非单个线程组或采样器。如果仅控制部分请求,未被覆盖的采样器会额外产生请求,导致总采样数超标。调整时在Timer的作用范围选项里选择“整个测试计划”即可。
2. 优化bzm并发线程组配置
bzm线程组的并发数、启动速率过高会突破Timer的限制:
- 降低目标并发数:如果线程数远高于支撑50吞吐量所需的数量,会导致短时间内请求堆积。
- 限制线程启动速率:不要一次性启动所有线程,设置合理的启动间隔(比如每秒启动1-2个线程),避免瞬间请求量超出控制阈值。
3. 调整Timer计算逻辑
- 打开Constant Throughput Timer高级设置,将“吞吐量计算方式”改为基于所有活跃线程的总吞吐量。默认的单线程计算逻辑会让每个线程都尝试达到50的吞吐量,总采样数自然超标。
- 确认时间单位:确保设置的50对应“每分钟50次”,如果误设为每秒,实际吞吐量会达到3000次/分钟,远超预期。
4. 添加辅助延迟控制
如果上述调整后仍有超标,可在采样器后添加Constant Timer,设置固定延迟(比如1200ms,对应每分钟50次请求:60000/50=1200),强制控制请求间隔,辅助吞吐量稳定。
5. 检查采样器重试逻辑
如果采样器开启了重试(比如HTTP请求重试次数>0),重试请求会被计入总采样数,导致实际数量超标。关闭不必要的重试,或在Timer配置中排除重试请求的计数。
内容的提问来源于stack exchange,提问作者Kumaran
相关产品推荐
相关产品推荐

