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

JMeter集成Jenkins时命令行生成带线程组名聚合报告咨询

问题根因

你之前尝试的三个方案未达预期,均为工具特性理解偏差导致,不存在功能层面的限制:

  • FilterResults.bat 仅做原始JTL日志的过滤裁剪,本身不具备聚合计算能力,无论使用include还是exclude规则,输出的都是过滤后的原始采样记录,格式和输入JTL一致,不可能直接生成聚合报告。之前include规则下无输出文件,是你传入的标签值和JTL内实际采样名不匹配,无符合规则的采样数据自然不会生成有效文件。
  • JMeterPluginsCMD.bat 和cmdrunner调用AggregateReport插件时,默认以采样器名称作为聚合维度,默认不会读取采样所属线程组字段做分组,因此输出结果不会按线程组拆分,也不会展示线程组名称。
可落地方案

以下三个方案均可实现需求,按改造成本从低到高排序:

方案1:最小改动,利用标签规则拆分聚合

不需要额外安装插件,基于你现有工具链即可实现:

  1. 打开你的JMeter测试计划,为每个线程组下的所有采样器名称增加统一可识别的前缀,比如线程组A下的所有请求统一加TG1_前缀,线程组B下的加TG2_前缀。如果不想手动改每个采样名,可以在线程组最开头加一个JSR223 PostProcessor,写入如下Groovy脚本自动给当前线程组所有采样打前缀:
def tgName = ctx.getThreadGroup().getName()
prev.setSampleLabel("${tgName}_${prev.getSampleLabel()}")
  1. 原有压测启动命令不需要调整,正常执行生成JTL文件即可。
  2. 生成单线程组聚合报告时,先用FilterResults按前缀过滤对应线程组的原始数据,再调用JMeterPluginsCMD生成聚合表即可,示例命令(以TG1线程组为例):
:: 过滤出TG1线程组的所有采样记录
D:\apache-jmeter-5.1\bin\FilterResults.bat --output-file C:\Users\temp\Downloads\tg1.jtl --input-file C:\Users\temp\Downloads\tests.jtl --include-labels "TG1_.*"
:: 基于过滤后的JTL生成TG1的聚合报告
D:\apache-jmeter-5.1\bin\JMeterPluginsCMD.bat --generate-csv C:\Users\temp\Downloads\tg1_agg.csv --input-jtl C:\Users\temp\Downloads\tg1.jtl --plugin-type AggregateReport

提示:FilterResults的标签匹配支持正则,不需要枚举所有采样名,只要前缀规则一致即可匹配该线程组下所有请求。

方案2:插件原生支持按线程组聚合,无需修改测试脚本

  1. 通过JMeter Plugins Manager安装Merge Results插件,和你现有2.2版本的插件工具链完全兼容。
  2. 压测完成后直接执行如下命令,即可生成按线程组分列的聚合报告,包含90/95/99分位、吞吐量、错误率等所有你需要的统计指标:
D:\apache-jmeter-5.1\bin\JMeterPluginsCMD.bat --generate-csv C:\Users\temp\Downloads\all_tg_agg.csv --input-jtl C:\Users\temp\Downloads\tests.jtl --plugin-type MergeResults --generate-group-by-thread-group true

方案3:直接对接Jenkins Performance插件展示

你已经安装的3.0版本Performance插件本身支持分线程组展示报告,不需要额外在命令行生成CSV文件:

  1. 调整JMeter启动参数,确保JTL中记录线程组字段:
D:\apache-jmeter-5.1\bin\jmeter.bat -Jjmeter.save.saveservice.output_format=xml -Jjmeter.save.saveservice.group_name=true -n -t C:\Users\temp\Downloads\tests.jmx -l C:\Users\temp\Downloads\tests.jtl
  1. 在Jenkins Pipeline的post阶段添加Performance插件报告采集配置,开启Show per thread group results选项,构建后即可在Jenkins页面直接查看每个线程组的聚合报告、性能趋势,同时支持配置响应时间、错误率阈值做构建质量判定。
注意事项
  • JMeterPluginsCMD和cmdrunner本质是调用同一套JMeter插件核心逻辑,二者选其一使用即可,不需要重复调试。
  • 如果使用标签过滤规则,先打开原始JTL文件核对lb字段(采样标签)的实际值,避免规则不匹配导致过滤结果为空。
  • JMeter 5.1版本已经停止维护,如果后续遇到插件兼容问题,可以升级到5.6.x稳定版,上述命令和配置逻辑完全通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:00:54