JMeter Dashboard HTML报告:使用series_filter排除请求后表头指标仍统计已排除请求的修复方案咨询
解决JMeter Dashboard表头统计未排除指定请求的问题
我懂你的困扰——用jmeter.reportgenerator.exporter.html.series_filter过滤了5个请求后,图表里确实看不到这些请求了,但表头的总请求数、错误率这些汇总指标还是把它们算进去了,对吧?这是因为series_filter的作用范围仅局限于图表中的数据系列展示,不会影响Dashboard顶部的全局汇总统计,这些统计是基于完整的样本结果集计算的。
要让表头指标也排除这些请求,你有两种可靠的解决方案:
方案1:测试运行时直接过滤样本(推荐)
这种方法会在测试执行阶段就把不需要的请求从结果文件(.jtl)中剔除,后续生成报告时自然只统计保留的请求:
- 右键你的测试计划 → 「添加」→ 「配置元件」→ 「Sample Result Save Configuration」
- 在这个元件的设置里,勾选「Save only samples that match the following regular expression」
- 输入一个正则表达式来匹配你想要保留的请求(或者用负向预查匹配要排除的):
- 比如要排除名为
Req_Exclude_1、Req_Exclude_2、Req_Exclude_3、Req_Exclude_4、Req_Exclude_5的5个请求,正则可以写:^(?!Req_Exclude_1|Req_Exclude_2|Req_Exclude_3|Req_Exclude_4|Req_Exclude_5).* - 如果你知道所有需要保留的请求都有统一前缀(比如
Valid_Req_),也可以直接写:^Valid_Req_.*
- 比如要排除名为
- 重新运行测试,生成的.jtl文件就只包含你需要的请求,再生成Dashboard时表头统计就会准确了。
方案2:报告生成阶段过滤样本
如果你不想重新运行测试,只想基于已有的.jtl文件生成过滤后的报告,可以用jmeter.reportgenerator.sample_filter属性,这个属性会过滤整个样本集,表头统计和图表都会使用过滤后的结果:
- 打开JMeter的
user.properties文件(在JMeter安装目录的bin文件夹下) - 添加一行配置,用正则指定要保留的请求(同样支持负向预查排除):
jmeter.reportgenerator.sample_filter=^(?!Req_Exclude_1|Req_Exclude_2|Req_Exclude_3|Req_Exclude_4|Req_Exclude_5).* - 保存文件后,重新运行报告生成命令(比如
jmeter -g test_results.jtl -o dashboard_report),此时Dashboard的表头统计和图表都会排除那5个请求。
关键提醒
别再混淆series_filter和sample_filter了:
series_filter:只控制图表中显示哪些请求系列,汇总统计依然用全量数据sample_filter:过滤整个样本集,所有统计(包括表头和图表)都基于过滤后的数据
内容的提问来源于stack exchange,提问作者Serhii Kachan




