如何在JMeter中分组聚合不同Thread Group的测试结果?
按流量类型分组聚合JMeter测试结果的可行方案
针对你需要将3个正常流量线程组和3个峰值流量线程组分开聚合统计的需求,这里有几个实用方案(JMeter确实不支持线程组嵌套,无需尝试此类操作):
方案1:给不同类型线程组配置独立的结果输出
直接为两类线程组分别绑定结果报告组件,输出到不同文件:
- 给3个正常流量线程组各添加「Aggregate Report」或「Summary Report」,设置输出文件路径为
normal-traffic-results.jtl(多个同类型线程组可以指向同一个文件,JMeter会自动合并写入) - 给3个峰值流量线程组做同样操作,输出到
peak-traffic-results.jtl - 测试结束后,分别打开这两个文件对应的报告组件,就能直接看到两类流量的合并聚合数据,比如平均响应时间、吞吐量等对比。
方案2:用自定义变量+结果过滤实现分组聚合
如果不想拆分输出文件,可以先生成总结果,再按类型过滤:
- 给正常流量的3个线程组添加用户定义变量,设置
traffic-type=normal;给峰值流量线程组设置traffic-type=peak - 运行测试生成总的结果文件
total-results.jtl - 使用JMeter自带的「Filter Results Tool」(需通过JMeter Plugins Manager安装),通过命令行过滤出两类结果:
# 过滤正常流量结果 java -jar JMeterPluginsCMD.jar --tool FilterResults --input-file total-results.jtl --output-file normal-results.jtl --include-properties "traffic-type=normal" # 过滤峰值流量结果 java -jar JMeterPluginsCMD.jar --tool FilterResults --input-file total-results.jtl --output-file peak-results.jtl --include-properties "traffic-type=peak" - 再用聚合报告组件加载过滤后的文件,得到分组统计数据。
方案3:利用插件实现可视化分组聚合
如果需要在测试过程中实时查看分组统计,推荐用JMeter Plugins里的「Aggregate Graph」:
- 安装插件后,添加「Aggregate Graph」组件
- 在组件设置里,勾选「Group by Thread Group」,然后在左侧线程组列表中,按住Ctrl键选中所有正常流量线程组,就能看到它们的合并聚合数据;同理选中峰值流量线程组查看对应统计。
关键提醒
JMeter的线程组是顶级组件,确实不支持嵌套在Loop Controller或其他线程组内,上述方案都是基于同级线程组的分组处理,完全能满足你对比平稳/高负载状态下API性能的需求。
内容的提问来源于stack exchange,提问作者Derek Mandl
相关产品推荐
相关产品推荐

