JMeter中SummaryReport、AggregateReport混入ViewResultsInTable数据如何解决
JMeter多监听器输出结果串扰解决方案
核心原因
命令行模式下所有处于激活状态的监听器默认会接收全量采样器的运行结果,若监听器的作用域、输出配置存在冲突,就会出现不同报告文件数据混杂的问题。
具体修复方案
修正监听器基础配置
- 不要将所有监听器统一挂载在测试计划根目录,可将每个监听器挂载到对应需要监听的线程组/采样器节点下,缩小作用域范围
- 逐个打开监听器配置页,确认三个监听器的输出文件路径完全独立,禁止勾选「Append to existing file」(追加到已有文件)选项,避免上一次运行的结果残留
- 进入每个监听器的「Configure」配置页,确认三个监听器的字段输出规则符合CSV格式要求,不要勾选全局共享的输出配置
关闭全局结果输出配置
打开JMeter安装目录下的bin/jmeter.properties文件,查找jmeter.save.saveservice.output_file相关配置,若存在全局输出路径配置直接注释掉,避免全局配置覆盖单个监听器的独立输出规则命令行运行时拆分收集和报告生成步骤(最稳妥,推荐正式压测使用)
完全绕开多监听器同时运行的冲突问题,运行阶段仅收集全量原始结果,测试结束后基于原始结果单独生成三类报告:- 运行测试,仅输出统一的原始结果文件:
jmeter -n -t 你的测试计划文件名.jmx -l 全量原始结果.jtl- 基于原始结果文件分别生成三类报告(需要提前安装JMeter Plugins Manager的CMD工具):
- 生成Summary Report CSV文件:
JMeterPluginsCMD.sh --generate-csv SummaryReport.csv --input-jtl 全量原始结果.jtl --plugin-type SummaryReport- 生成Aggregate Report CSV文件:
JMeterPluginsCMD.sh --generate-csv AggregateReport.csv --input-jtl 全量原始结果.jtl --plugin-type AggregateReport- 生成View Results In Table CSV文件:
JMeterPluginsCMD.sh --generate-csv ViewResultsInTable.csv --input-jtl 全量原始结果.jtl --plugin-type TableReporter自动禁用多余监听器
在bin/user.properties文件中添加配置jmeter.listeners.autodisable=true,命令行运行时会自动禁用所有未配置输出文件的监听器,减少冗余逻辑干扰
内容的提问来源于stack exchange,提问作者LauraL
相关产品推荐
相关产品推荐

