如何用centos分析jmeter测试报告
导读:在 CentOS 上分析 JMeter 测试报告的高效做法 一 生成 HTML 报告 准备环境:安装 Java 8+,下载解压 Apache JMeter(建议 5.x),在 非 GUI 模式执行压测并落盘 JTL,再用 JMeter...
在 CentOS 上分析 JMeter 测试报告的高效做法
一 生成 HTML 报告
- 准备环境:安装 Java 8+,下载解压 Apache JMeter(建议 5.x),在 非 GUI 模式执行压测并落盘 JTL,再用 JMeter 生成可视化报告。
- 执行压测并直接导出报告
- 命令:
cd /opt/apache-jmeter-5.4.3/bin ./jmeter -n -t /path/to/testplan.jmx -l /path/to/results.jtl -e -o /path/to/report - 关键参数:
- -n:非 GUI 模式
- -t:JMX 脚本路径
- -l:结果文件路径(JTL)
- -e:测试结束后生成报告
- -o:HTML 报告输出目录(必须为空或不存在)
- 命令:
- 已有 JTL 再生成报告
./jmeter -g /path/to/results.jtl -e -o /path/to/report - 报告查看
- 在本地或服务器上用浏览器打开报告目录中的 index.html。若需在服务器本机查看,可临时开启端口转发(如
ssh -L 8080:127.0.0.1:8080 user@your-centos),然后访问 http://127.0.0.1:8080。
- 在本地或服务器上用浏览器打开报告目录中的 index.html。若需在服务器本机查看,可临时开启端口转发(如
二 HTML 报告关键指标解读
- Dashboard
- APDEX(0–1):越接近 1 表示用户满意度越高,综合衡量响应时间与容忍阈值。
- Requests Summary:总体 OK/KO 比例,快速判断稳定性。
- Statistics:核心统计(如 Average/Median/90%/95%/99%/Min/Max、Throughput、Error % 等),相当于聚合报告与概要报告的合并视图。
- Errors:按错误类型聚合,定位主要失败原因(如 5xx、超时、连接失败)。
- Charts
- Over Time
- Response Times Over Time:响应时间随时间的波动,观察拐点与抖动。
- Active Threads Over Time:并发线程数变化,验证是否按预期加压。
- Bytes Throughput Over Time / Latencies Over Time:吞吐与延迟趋势,识别瓶颈。
- Throughput
- Hits Per Second / Transactions Per Second(TPS)/ Codes Per Second:系统处理能力、每秒事务数与状态码分布。
- Response Times
- Response Time Percentiles:中位数、P90/P95/P99 等更能代表大多数用户体验。
- Over Time
三 命令行快速分析 JTL
- 直接用 JMeter 生成 HTML 报告(适合一次性分析)
./jmeter -g results.jtl -e -o report - 仅查看关键统计(无 GUI 时推荐)
- 将 JTL 转为 CSV 并提取核心字段(示例)
# 将 JTL 转为 CSV(含必要列) cat results.jtl \ | tr '\t' ',' \ | awk -F',' 'NR==1 || $2 ~ /^[0-9]/ { gsub(/"/,"",$2); gsub(/"/,"",$3); gsub(/"/,"",$5); gsub(/"/,"",$6); printf "%s,%s,%s,%s,%s\n", $2,$3,$5,$6,$8 } ' \ | sort -t',' -k1n \ > summary.csv # 计算平均响应时间、P95、最大响应时间、错误率 awk -F',' ' NR> 1 { sum+=$3; count++; if($3> max) max=$3; if($3< $min || min=="") min=$3 if($5> 0) errors++; times[NR]=$3 } END { asort(times); p95=times[int(count*0.95)]; printf "样本数: %d\n平均RT: %.2f ms\nP95: %.2f ms\n最大RT: %.2f ms\n错误率: %.2f%%\n", count, sum/count, p95, max, errors/count*100 } ' summary.csv
- 将 JTL 转为 CSV 并提取核心字段(示例)
- 使用插件生成图表(在无头环境导出 PNG)
- 将 JMeterPlugins-Standard/Extras 的 JAR 放入 JMETER_HOME/lib/ext,然后:
cd $JMETER_HOME/lib/ext java -jar CMDRunner.jar --tool Reporter \ --generate-png rt_over_time.png --input-jtl results.jtl --plugin-type ResponseTimesOverTime java -jar CMDRunner.jar --tool Reporter \ --generate-png tps.png --input-jtl results.jtl --plugin-type TransactionsPerSecond - 常用图表类型:ResponseTimesOverTime、TransactionsPerSecond、BytesThroughputOverTime、LatenciesOverTime、ResponseCodesPerSecond、ThreadsStateOverTime。
- 将 JMeterPlugins-Standard/Extras 的 JAR 放入 JMETER_HOME/lib/ext,然后:
四 实时监控与长期可视化
- 架构与端口
- 使用 JMeter Backend Listener 将指标写入 InfluxDB,通过 Grafana 展示;常用端口:2003(InfluxDB 接收)、8086(Grafana 查询)、3000(Grafana Web)。
- InfluxDB 配置要点(示例)
- 启用 Graphite 输入插件,设置数据库为 jmeter,端口 2003,并开启 HTTP 接口。
- JMeter 配置要点
- 在线程组添加 Backend Listener,选择 InfluxDBBackendListenerClient 或 GraphiteBackendListenerClient,配置 graphiteHost、graphitePort、summaryOnly=false、percentiles 等。
- Grafana 使用
- 启动 Grafana,访问 http://:3000(默认账号 admin/admin),添加 InfluxDB 数据源(URL http://localhost:8086,数据库 jmeter),导入 JMeter 仪表盘模板,即可查看 TPS、响应时间百分位、活跃线程 等实时曲线。
五 常见问题与排查
- 报告目录非空导致失败
- 报错信息通常提示输出目录必须为空;执行前清理或更换目录:
rm -rf /path/to/report & & mkdir -p /path/to/report
- 报错信息通常提示输出目录必须为空;执行前清理或更换目录:
- 分布式压测生成报告
- 使用 -r 启动远程代理,再生成报告(与普通流程一致):
./jmeter -n -t test.jmx -r -l results.jtl -e -o report
- 使用 -r 启动远程代理,再生成报告(与普通流程一致):
- 服务器本机无法打开报告
- 使用 SSH 端口转发或临时安装轻量 Web 服务(如
python3 -m http.server 8080)在服务器上提供报告访问。
- 使用 SSH 端口转发或临时安装轻量 Web 服务(如
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用centos分析jmeter测试报告
本文地址: https://pptw.com/jishu/775305.html
