JMeter生成测试报告

录制完测试脚本,保存为.jmx文件

在jmeter/bin下执行以下命令

jmeter -n -t <test JMX file> -l <test log file> -e -o <Path to output folder>
# -n:以非GUI形式运行Jmeter 
# -t:source.jmx 脚本路径 
# -l:result.jtl 运行结果保存路径(.jtl),此文件必须不存在 
# -e:在脚本运行结束后生成html报告 
# -o:用于存放html报告的目录

我的实例

jmeter -n -t D:\zly\sc_login.jmx -l login.jtl -e -o testResult
# 确保bin下无login.jtl和testResult,有的话手动删除
# 或者在bin下封装一个bat批处理文件,内容如下
echo off

del login.jtl

rd testResult /s/q

call jmeter -n -t D:\zly\sc_login.jmx -l login.jtl -e -o testResult

pause
# 运行此脚本可自动删除多余文件并自动生成报表
# 我的bat文件为  create_test_report_html.bat

在bin下的reportgenerator.properties中可以自定义配置

jmeter.reportgenerator.overall_granularity=1000
# (时间刻度)颗粒度配置ms,不能小于1000
# jmeter.reportgenerator.overall_granularity=60000

更多详细参数图表解析

执行完毕后,用浏览器打开生成的文件目录下的index文件,效果展示如下:

测试报告分为两部分,Dashboard和Charts,下面分开解析。

1、Dashboard(概览仪表盘)

①、Test and Report informations

②、APDEX (应用性能指标)

③、Requests Summary

2、Charts(详细信息图表)

PS:由于详细信息图表有点多,这里我挑几个性能测试过程中比较关键的图表解析!

Over Time

①、Response Times Over Time(脚本运行期间的响应时间变化趋势图)

说明:可以根据响应时间和变化和TPS以及模拟的并发数变化,判断性能拐点的范围。

②、 Response Time Percentiles Over Time (successful responses)

说明:脚本运行期间成功的请求响应时间百分比分布图,可以理解为聚合报告里面不同%的数据,图形化展示的结果。

③、Bytes Throughput Over Time(脚本运行期间的吞吐量变化趋势图)

说明:在容量规划、可用性测试和大文件上传下载场景中,吞吐量是很重要的一个监控和分析指标。

④、 Latencies Over Time(脚本运行期间的响应延时变化趋势图)

说明:在高并发场景或者强业务强数据一致性场景,延时是个很严重的影响因素。

Throughput

①、Transactions Per Second(每秒事务数)

说明:每秒事务数,即TPS,是性能测试中很重要的一个指标,它是用来衡量系统处理能力的一个重要指标。

Response Times

①、 Response Time Percentiles(响应时间百分比分布曲线图)

说明:即响应时间在某个范围内的请求在所有请求数中所占的比率,相比于平均响应时间,这个值更适合用来衡量系统的稳定性。

②、Time Vs Threads(平均响应时间和线程数的对应变化曲线)

说明:可以通过这个对应的变化曲线来作为确定性能拐点的一个参考值。

坑:

jmeter.properties文件下的jmeter.save.saveservice.output_format需要改为csv

# legitimate values: xml, csv, db.  Only xml and csv are currently supported.
jmeter.save.saveservice.output_format=csv
#jmeter.save.saveservice.output_format=xml

种一棵树最好的时间是十年前,其次是现在