jmeter生成测试报告方法及报告字段含义

聚合报告

Label:每个JMeter的element的Name值,例如HTTP Request的Name;

样本:发出请求数量;模拟20个用户,循环100次,所以显示了2000;

平均值:平均响应时间(单位:ms);默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间;

中位数:50%的用户响应时间小于这个值;

95%百分位:95%的用户响应时间小于这个值;

99%百分位:99%的用户响应时间小于这个值;

最小值:用户响应时间最小值;

最大值:用户响应时间最大值;

异常%:测试出现的错误请求数量百分比;请求的错误率 = 错误请求的数量/请求的总数;若出现错误就要看服务端的日志查找定位原因;

吞吐量:Throughput简称TPS,吞吐量,默认情况下表示每秒处理的请求数,也就是指服务器处理能力,TPS越高说明服务器处理能力越好;

接收KB/sec:每秒从服务器端接收到的数据量

发送KB/sec:每秒发送到服务器端的数据量

汇总报告

Label:每个JMeter的element的Name值,例如HTTP Request的Name;

样本:发出请求数量;模拟20个用户,循环100次,所以显示了2000;

平均值:平均响应时间(单位:ms);默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间;

中位数:50%的用户响应时间小于这个值;

95%百分位:95%的用户响应时间小于这个值;

99%百分位:99%的用户响应时间小于这个值;

最小值:用户响应时间最小值;

最大值:用户响应时间最大值;

异常%:测试出现的错误请求数量百分比;请求的错误率 = 错误请求的数量/请求的总数;若出现错误就要看服务端的日志查找定位原因;

吞吐量:Throughput简称TPS,吞吐量,默认情况下表示每秒处理的请求数,也就是指服务器处理能力,TPS越高说明服务器处理能力越好;

接收KB/sec:每秒从服务器端接收到的数据量

发送KB/sec:每秒发送到服务器端的数据量

平均字节数: 样本响应数据的平均大小,以字节为单位

响应时间:指应用执行一个操作所需的时间,包括从发出请求开始到最后收到响应所需要的时间。响应时间的计算要考虑到用户的数目,用户数目越多,响应时间必须越快。

聚合报告中体现接口响应时间的指标包含平均值、中位数、90%百分位、95%百分位、99%百分位、最小值、最大值,响应时间越小表示接口响应越快。实际工作中我们比较关注90%百分位这个值,表示90%的用户响应时间是小于578ms,平均响应时间参考意义不大

吞吐量:表示服务器分秒处理请求数或任务数。该值越大越好,表示服务器处理能力越强。

错误率:聚合报告中是指异常指标,错误率越低越好,为0表示没有异常请求。对于一般业务来说错误率要在万分之一以下。考虑到不同业务的区别,这个万分之一的标准可能会有变化。

带宽:在聚合报告中指Recived(KB/s),表示从服务器端接受返回数据所占网络带宽。这个值一般要求越小越好,越小占用带宽越小,间接的表示服务器端返回数据较小。一般内网环境也就是千兆带宽,如果该值过大时,需要考虑优化。

问题:聚合报告与汇总报告的区别

汇总报告与聚合报告类似,但是相比聚合报告,汇总报告使用更少的内存

一、怎么生成jtl文件

创建存储jtl类型文件的文件夹和存储html测试报告的文件夹

在jtl文件夹中创建空的result.jtl文件

方法一:创建result.jtl文件的方式:新建txt空白文件-->点击文件,另存为--> 输入文件名为result.jtl --> 文件类型选为 所有文件-->编码选为utf-8-->点击保存

方式二:进入文件资源管理器,点击查看,勾选文件扩展名

右击已创建的result.txt文件,点击重命名,修改文件类型为result.jtl,即可

二、使用jmeter中的GUI生成测试报告

在jmeter脚本的查看结果树中,在所有数据写入一个文件,点击浏览,获取result.jtl文件的地址

获取文件地址之后会报错,是因为log文件为空,没有关系,点击ok即可;

然后启动脚本;

启动jmeter脚本后,会有如下提示,在jtl中已经存在result.jtl文件,因为现在为空文件,选择附加到现在文件,选择overwrite existing file 也可;若不是空文件,想增加log日志,则选择附加到现有文件;只显示本次脚本运行的日志,则选择overwriter existing file

选择没有开始,则脚本停止启动;overwriter existing file表示重写已存在的文件

之后result.jtl文件会存储测试数据

Jmeter脚本执行完成后,点击工具,点击Generate HTML report

result file :选择刚刚生成的result.jtl文件的路径

user.properties file : 选择 jmeter安装目录下bin文件内 jmeter.properties

output directory : 选择报告输出的路径

点击Generate report

如果报告输出的文件夹不是空的,则会出现如下提示,需要将报告输出的文件夹清空,再次点击Generate report,即成功生成报告

进入到报告生成的路径,里面会有一个index.html的文件,即可查看报告,如下。

三、jmeter CLI模式

CLI = Command Line,命令行模式,我们常说的 NON GUI 模式,无界面模式

真正做负载测试时,应该使用 CLI 模式运行,而不是 GUI

提示:负载测试不要用 GUI 模式,GUI模式仅用于创建测试计划和调试脚本

CLI 模式可选参数

-n 指定 JMeter 将在 cli 模式下运行

-t 包含测试计划的 jmx 文件名称

-l 记录测试结果的 jtl 文件名称

-j 记录 Jmeter 运行日志的文件名称

-g 输出报告文件( .csv 文件)

-e 生成 html 格式的测试报表

-o 生成测试报表的文件夹/文件夹不存在或为空

服务器相关参数

-r 指定所有远程服务器中运行测试

-R 在指定的远程服务器中运行测试

-X 服务器运行完脚本后自动停止 jmeter-server(用的少)

1.使用命令行生成测试报告

进入D:\apache-jmeter-5.5\bin,点击地址,输入cmd,点击回车,进入命令控制台

在命令控制台中输入jmeter -n -t

  • -n: 非 GUI 模式执行 JMeter
  • -t: 执行测试文件所在的位置
  • -l: 指定生成测试结果的保存文件,jtl 文件格式
  • -e: 测试结束后,生成测试报告
  • -o: 指定测试报告的存放位置

命令执行之后,在报告文件文件夹中生成测试报告,在jmeter安装文件夹的bin文件夹中自动生成result.jtl文件。

双击index.html文件即可看到测试报告

2.使用Windows批处理文件自动生成测试报告

因每次使用命令行生成测试报告之前,都要将存储报告的文件夹中的内容以及命令行执行后自动生成的result.jtl文件清空,故可以使用Windows批处理文件自动生成测试报告。操作步骤如下:

  1. 新建空白文件,文件类型为.bat。在文件中输入以下命令:

del /s /Q D:\apache-jmeter-5.5\bin\result.jtl

rd /s /Q D:\jmeter_report\report

md D:\jmeter_report\report

jmeter -n -t D:\jmeter_demo\yozo_file_upload.jmx -l result.jtl -e -o D:\jmeter_report\report

  1. 然后将编译好的bat文件,放入jmeter安装文件夹中的bin文件夹中
  2. 点击bin文件夹中的bat文件,即可自动生成测试报告

命令含义:

删除文件

Del表示删除文件

/s 删除该文件

/q 删除前不确认

删除文件夹

Rd 表示文件夹

/s 删除该目录及其下的所有内容

/q 删除前不确认

创建文件夹

Md 表示创建文件夹

四、测试报告

Html测试报告的主要部分为Dashboard和Charts

Dashboard(基础报告情况)

Test and Report information(测试报告与信息)

APDEX (Application Performance Index)(应用性能测试)

APDEX:0-1,越靠近1越接近国际标准

Requests Summary(请求摘要)

Statistics(统计)

与聚合报告相似

Error(请求异常)

Charts(详细报告)

Over Time(每时运行时信息)

Response Times Over Time(响应时长)

图表示随着时间响应的时间变化

Response Time Percentiles Over Time (successful responses) (90%、95%、99%线程在各个时间段的响应时间):跟聚合报告里面的90、95、99%差不多

Active threads over time(各个线程每时运行情况):线程多的时候看比较有意义

Bytes Throughput Over Time(每时接收与发送字节的情况)

Latencies Over Time(每时请求的延迟时长):如图一开始延迟很高,后面有所下降

Connect Time Over Time(每时连接需要的时长):如图一开始请求并发高,连接需要的时间很高

Throughput(吞吐量)

Hits Per Second(每时发起的请求数)

Codes Per Second(各个code每时响应数量)

Transactions Per Second(每时事物响应数目)

Total Transactions Per Second(总每时事务请求曲线)

Response Time Vs Request(每时各个请求响应类型的平均响应时间)

Latency Vs Request(各个请求类型的每时延迟时间)

Response time(响应时间)

Response Time Percentiles(响应时间百分比分布)

Response Time Overview(响应时间条状对比图)

Time Vs Threads(各个线程平均响应时间,实际中看运行拐点来定为性能瓶颈的参考值)

Response Time Distribution(测试过程中多少线程数占响应时间比例图)

posted @ 2023-02-26 19:14  sonny_z  阅读(7660)  评论(0编辑  收藏  举报