--
:
--
:
--
JMeter监听器详解
最后更新于:
JMeter监听器详解
一、监听器概述
1.1 什么是监听器
监听器(Listeners)是JMeter中收集和展示测试结果的元件,用于记录采样器的执行结果、生成报告和监控测试过程。
1.2 监听器的作用
- 记录结果:记录采样器的执行结果
- 生成报告:生成各种格式的测试报告
- 实时监控:实时监控测试执行状态
- 数据导出:将测试结果导出为文件
- 结果分析:分析测试结果数据
1.3 监听器执行顺序
1监听器执行顺序:
21. 采样器执行完成
32. 后置处理器执行(如果有)
43. 断言执行(如果有)
54. 监听器收集结果1.4 监听器分类
| 类型 | 监听器名称 | 说明 |
|---|---|---|
| 结果查看 | 查看结果树、表格 | 查看详细结果 |
| 统计报告 | 聚合报告、摘要报告 | 统计测试结果 |
| 图形展示 | 图形结果、响应时间图 | 图形化展示结果 |
| 日志记录 | 日志查看器 | 查看日志 |
| 数据导出 | 后端监听器、结果文件输出 | 导出测试数据 |
二、查看结果树
2.1 添加查看结果树
1右键点击线程组 → Add → Listener → View Results Tree2.2 配置
1名称: 查看结果树
2文件名: results.jtl
3输出格式: XML2.3 参数说明
文件名(Filename)
1文件名: results.jtl说明:将结果保存到文件中。
输出格式(Output format)
1输出格式: XML选项:
- XML:XML格式(默认)
- CSV:CSV格式
- JSON:JSON格式
仅显示错误(Only log errors)
1勾选: 仅显示错误说明:如果勾选,只显示执行失败的采样器。
配置要保存的字段(Configure Save Fields)
1响应数据: true
2响应头: true
3请求头: true
4请求数据: true说明:配置需要保存的字段。
2.4 查看结果
采样器结果列表
1列表列说明:
2- 序号: 采样器执行顺序
3- 时间: 执行时间
4- 线程名称: 线程名称
5- 标签: 采样器名称
6- 响应码: HTTP响应码
7- 响应消息: HTTP响应消息
8- 响应时间: 响应时间(毫秒)
9- 状态: 成功/失败响应详情
1响应详情标签:
2- Sampler Result: 采样器结果
3- Request: 请求信息
4- Response Data: 响应数据
5- Response Headers: 响应头
6- Request Headers: 请求头2.5 使用场景
1调试测试脚本,查看每个采样器的详细结果。三、聚合报告
3.1 添加聚合报告
1右键点击线程组 → Add → Listener → Aggregate Report3.2 配置
1名称: 聚合报告
2文件名: aggregate_report.csv3.3 参数说明
文件名(Filename)
1文件名: aggregate_report.csv说明:将报告保存到文件中。
3.4 报告字段说明
| 字段 | 说明 |
|---|---|
| Label | 采样器名称 |
| #Samples | 请求总数 |
| Average | 平均响应时间(毫秒) |
| Median | 中位数响应时间(毫秒) |
| 90% Line | 90%请求的响应时间(毫秒) |
| 95% Line | 95%请求的响应时间(毫秒) |
| 99% Line | 99%请求的响应时间(毫秒) |
| Min | 最小响应时间(毫秒) |
| Max | 最大响应时间(毫秒) |
| Error% | 错误率 |
| Throughput | 吞吐量(请求/秒) |
| Received KB/sec | 每秒接收的数据量(KB) |
| Sent KB/sec | 每秒发送的数据量(KB) |
3.5 报告分析
关键指标分析
| 指标 | 分析要点 |
|---|---|
| Average | 平均响应时间是否在可接受范围内 |
| 90% Line | 大多数请求的响应时间 |
| 99% Line | 最差情况下的响应时间 |
| Error% | 错误率是否超过允许范围 |
| Throughput | 吞吐量是否达到预期 |
示例报告
1Label #Samples Average Median 90% Line 95% Line 99% Line Min Max Error% Throughput
2HTTP请求-登录 1000 150 120 200 250 400 50 800 0.5% 66.7
3HTTP请求-获取用户 1000 80 70 120 150 200 30 500 0% 125
4HTTP请求-下单 500 500 450 800 1000 1500 100 3000 1% 103.6 使用场景
1生成性能测试报告,分析关键性能指标。四、摘要报告
4.1 添加摘要报告
1右键点击线程组 → Add → Listener → Summary Report4.2 配置
1名称: 摘要报告
2文件名: summary_report.csv4.3 报告字段说明
| 字段 | 说明 |
|---|---|
| Label | 采样器名称 |
| #Samples | 请求总数 |
| Average | 平均响应时间(毫秒) |
| Min | 最小响应时间(毫秒) |
| Max | 最大响应时间(毫秒) |
| Std. Dev. | 响应时间标准差 |
| Error% | 错误率 |
| Throughput | 吞吐量(请求/秒) |
| Received KB/sec | 每秒接收的数据量(KB) |
4.4 摘要报告 vs 聚合报告
| 特性 | 摘要报告 | 聚合报告 |
|---|---|---|
| 响应时间统计 | 简单(平均、最小、最大) | 详细(P50、P90、P95、P99) |
| 标准差 | 有 | 无 |
| 报告简洁度 | 简洁 | 详细 |
| 适用场景 | 快速查看 | 深入分析 |
五、图形结果
5.1 添加图形结果
1右键点击线程组 → Add → Listener → Graph Results5.2 配置
1名称: 图形结果
2文件名: graph_results.png5.3 参数说明
文件名(Filename)
1文件名: graph_results.png说明:将图形保存为图片文件。
5.4 图形说明
Y轴
1Y轴说明:
2- Response Time: 响应时间(毫秒)
3- Throughput: 吞吐量(请求/秒)X轴
1X轴说明:
2- Time: 时间(秒)图例
1图例说明:
2- Average: 平均响应时间
3- Median: 中位数响应时间
4- 90% Line: 90%请求的响应时间
5- Throughput: 吞吐量5.5 使用场景
1实时查看响应时间和吞吐量的变化趋势。六、响应时间图
6.1 添加响应时间图
1右键点击线程组 → Add → Listener → Response Time Graph6.2 配置
1名称: 响应时间图6.3 参数说明
时间范围(Time Range)
1时间范围: 100(毫秒)说明:时间范围的粒度。
分组(Grouping)
1分组: By Label说明:按标签分组显示。
6.4 使用场景
1查看响应时间的分布情况。七、表格
7.1 添加表格
1右键点击线程组 → Add → Listener → Table7.2 配置
1名称: 表格
2文件名: table_results.csv7.3 参数说明
文件名(Filename)
1文件名: table_results.csv说明:将表格数据保存到文件中。
7.4 表格字段
| 字段 | 说明 |
|---|---|
| StartTime | 开始时间 |
| Label | 采样器名称 |
| ResponseCode | 响应码 |
| ResponseMessage | 响应消息 |
| Duration | 响应时间(毫秒) |
| Bytes | 响应字节数 |
| Latency | 延迟时间(毫秒) |
| Connect | 连接时间(毫秒) |
7.5 使用场景
1查看每个采样器的详细执行数据。八、日志查看器
8.1 添加日志查看器
1右键点击线程组 → Add → Listener → Log Viewer8.2 配置
1名称: 日志查看器
2日志级别: INFO8.3 参数说明
日志级别(Log Level)
1日志级别: INFO选项:
- DEBUG:调试级别
- INFO:信息级别(默认)
- WARN:警告级别
- ERROR:错误级别
8.4 使用场景
1查看JMeter运行日志,调试测试脚本。九、后端监听器
9.1 添加后端监听器
1右键点击线程组 → Add → Listener → Backend Listener9.2 配置
1名称: 后端监听器
2后端监听器实现: org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient
3参数:
4 influxdbUrl: http://localhost:8086/write?db=jmeter
5 application: myapp
6 measurement: jmeter9.3 参数说明
后端监听器实现(Backend Listener implementation)
1后端监听器实现: org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient说明:选择后端存储实现。
常见实现:
- InfluxDB:org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient
- Elasticsearch:org.apache.jmeter.visualizers.backend.elasticsearch.ElasticsearchBackendListenerClient
参数(Parameters)
1参数列表:
2 influxdbUrl: http://localhost:8086/write?db=jmeter
3 application: myapp
4 measurement: jmeterInfluxDB参数:
| 参数 | 说明 |
|---|---|
| influxdbUrl | InfluxDB URL |
| application | 应用名称 |
| measurement | 测量名称 |
| summaryOnly | 是否只记录汇总数据 |
9.4 使用场景
1将测试数据发送到InfluxDB或Elasticsearch,配合Grafana进行实时监控和可视化。十、结果文件输出
10.1 配置结果文件输出
1通过监听器的"文件名"字段配置结果文件输出。10.2 输出格式
JTL格式(XML)
1<?xml version="1.0" encoding="UTF-8"?>
2<testResults version="1.2">
3 <httpSample t="150" lt="50" ts="1627890000000" s="true" lb="HTTP请求-登录" rc="200" rm="OK" />
4 <httpSample t="80" lt="30" ts="1627890000150" s="true" lb="HTTP请求-获取用户" rc="200" rm="OK" />
5</testResults>CSV格式
1timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
21627890000000,150,HTTP请求-登录,200,OK,Thread Group 1-1,text,true,,1024,256,1,1,http://localhost:8080/api/login,50,0,30
31627890000150,80,HTTP请求-获取用户,200,OK,Thread Group 1-1,text,true,,512,128,1,1,http://localhost:8080/api/users,30,0,2010.3 生成HTML报告
1# 使用命令行生成HTML报告
2jmeter -n -t test_plan.jmx -l results.jtl -e -o report
3
4# 参数说明
5# -n: 非GUI模式
6# -t: 指定测试计划文件
7# -l: 指定结果文件
8# -e: 生成HTML报告
9# -o: 指定报告输出目录十一、实战案例
11.1 案例1:完整的性能测试报告
需求:生成完整的性能测试报告
配置步骤:
创建线程组(100线程,循环10次)
添加HTTP请求(测试接口)
添加查看结果树:
1文件名: results.jtl- 添加聚合报告:
1文件名: aggregate_report.csv- 添加摘要报告:
1文件名: summary_report.csv- 添加图形结果:
1文件名: graph_results.png运行测试
生成HTML报告:
1jmeter -g results.jtl -o report11.2 案例2:实时监控测试
需求:使用InfluxDB和Grafana实时监控测试
配置步骤:
安装InfluxDB和Grafana
创建数据库:
1influx
2> CREATE DATABASE jmeter
3> USE jmeter创建线程组(100线程,循环Forever)
添加HTTP请求(测试接口)
添加后端监听器:
1后端监听器实现: org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient
2参数:
3 influxdbUrl: http://localhost:8086/write?db=jmeter
4 application: myapp
5 measurement: jmeter配置Grafana仪表盘
运行测试
在Grafana中查看实时监控数据
11.3 案例3:错误分析
需求:分析测试中的错误
配置步骤:
创建线程组(100线程,循环10次)
添加HTTP请求(测试接口)
添加查看结果树:
1仅显示错误: true添加聚合报告
运行测试
分析错误结果:
- 查看错误类型和数量
- 查看错误响应内容
- 定位问题原因
十二、常见问题
12.1 监听器影响性能
回答:
- 性能测试时尽量少用监听器
- 推荐使用非GUI模式运行
- 使用后端监听器代替GUI监听器
12.2 结果文件过大
回答:
- 配置要保存的字段,只保存必要的字段
- 使用CSV格式代替XML格式
- 定期清理结果文件
12.3 HTML报告生成失败
回答:
- 确保JMeter版本支持HTML报告生成
- 确保结果文件格式正确
- 确保输出目录不存在
12.4 后端监听器连接失败
回答:
- 检查后端服务地址和端口是否正确
- 检查网络连接是否正常
- 检查后端服务是否正常运行
下一章:10-变量与函数.md
📡
👤
作者:
阿海
🌐
版权:
本站文章除特别声明外,均采用
CC BY-NC-SA 4.0
协议,转载请注明来自
阿海 Blog!
- 01JMeter界面详解 2026-07-11
- 02性能测试学习路线 2026-07-11
- 03JMeter线程组配置详解 2026-07-11