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

JMeter Aggregate Report单请求数据总和与Transaction Controller数据不匹配排查

JMeter聚合报告与事务控制器统计数据不一致问题定位

现象说明

  • 性能测试完成后分析报告数据时,Aggregate Report(聚合报告)中各独立请求的统计值求和后,与Transaction Controller(事务控制器)的统计值不匹配
  • 低并发(单用户/少量用户)场景下无该异常,仅高并发压测时会触发
  • 异常现象参考:统计数据不一致现象截图

根因分析

该偏差是高并发场景下的统计口径错位+组件性能瓶颈共同导致的,常见触发点如下:

  • 统计范围不一致
    事务控制器的默认统计逻辑会覆盖整个事务块的全链路耗时,包括线程上下文切换、控制器遍历逻辑、前后置组件执行、断言判断的耗时;而聚合报告里的独立请求统计仅统计采样器自身的请求响应耗时。低并发下这部分额外开销占比极低几乎可以忽略,高并发下线程调度竞争加剧,额外开销占比随并发量上升线性增长,最终出现明显数值差。如果事务控制器勾选了Include duration of timer and pre-post processors in generated sample选项,定时器、前后置处理器的耗时也会被计入事务总时长,但这部分耗时不会归属到任何一个独立请求的统计项中,会进一步放大偏差。
  • 统计组件性能瓶颈导致样本计数错位
    JMeter GUI模式下的聚合报告是单线程消费样本队列的,高并发场景下单位时间生成的样本量超过统计组件的处理阈值时,会出现样本丢弃、计数不同步的问题:事务控制器的计数是在事务块执行完成时实时触发,而独立请求的统计是异步消费队列计算,队列积压时会出现部分独立请求样本未被统计、但事务已经完成计数的情况,最终两边求和结果无法对齐。
  • 隐藏请求的统计差
    如果请求配置了自动重定向、自动抓取嵌入资源,事务控制器会把重定向子请求、静态资源请求的耗时全部计入事务总时长;如果聚合报告没有开启父样本/子样本的全量展示,这部分子请求不会出现在独立请求的统计列表中,高并发下这部分请求量级放大,数值差会更明显。

修复方案

  • 统一统计口径:核对事务控制器配置,根据统计需求决定是否将定时器、前后置处理器耗时纳入统计,保证事务统计范围和内部独立请求的统计范围对齐;如果开了自动重定向、嵌入资源抓取,要么在聚合报告中开启子样本展示,要么关闭相关配置避免隐藏请求带来的统计差。
  • 规避统计组件瓶颈:正式高并发压测不要使用GUI模式运行,改用非GUI命令行模式执行测试,压测结束后再生成聚合报告做数据分析,避免GUI单线程统计导致的样本丢失、计数错位问题。

内容的提问来源于stack exchange,提问作者Muthu Raman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:21:32