jmeter性能测试报告的形成及内容介绍

jmeter报告的输出:
1.执行脚本并输出测试结果报告

jmeter -n -t [jmx file] -l [result file] -e -o [Path to output folder]

JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录,当然也可以使用绝对路径来执行

jmx file:测试计划的文件名称
result file:输出文件路径,可以是结果日志名称
Path to output folder:要保存的report文件路径

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

(1)直接生成HTML报告
PS:输出文件(-l后的文件)必须是不存在的,report文件夹为空文件夹或者不存在(-o后面的),不然无法生存报告

(2)使用之前的测试结果,生成测试报告
启动CMD窗口,先生成测试结果,再生成报告,输入以下命令:

jmeter -n -t C:\Users\zhangXXX\Desktop\baidu.jmx -l 201804020001.jtl
非GUI模式执行.png
结果文件.png
jmeter -g 201804020001.jtl -o C:\Users\zhangXXX\Desktop\baidu-reports
报告.png
PS:-g 指定已存在的测试结果文件

以上两种方法,其实最终都依赖生成的测试报告。双击报告文件夹中的index.html就可以查看报告

报告详解
Dashboard:
Test and Report informations:指的是测试和报告信息

File:测试结果的保存文件名称
Start Time:测试开始时间
End Time:测试结束时间
Filter for display展示过滤器
APDEX(Application Performance Index):应用程序性能满意度的标准,范围在0-1之间,1表示达到所有用户均满意,越接近1满意度越高

Requests Summary:请求的通过率(OK)与失败率(KO),百分比显示

扫描二维码关注公众号,回复: 9090867 查看本文章

Statistics:数据分析,基本将Summary Report和Aggrerate Report的结果合并

Errors:错误情况,依据不同的错误类型,将所有错误结果展示

Dashboard.png
Charts:用图表的形式展示测试数据,让测试报告更加直观**
主要有如下特点:
(1)将测试过程中经常使用的数据,用图表的形式展示,让测试结果更加直观
(2)每个图表数据,有两种展示形式
(3)支持请求样例过滤显示
(4)支持导出PNG图片格式

Over Time Charts:

Response Times Over Time:每秒钟响应时间,X轴表示的是系统运行的时刻,Y轴表示的是响应时间,F(X,Y)表示系统随着时间的推移,系统的响应时间的变化,可以看出响应时间稳定性
Bytes Throughput Over Time:字节接收与发送的数量,每秒传输字节吞吐量,表明Jmeter在测试时,随着时间推移发送和接收的字节数
Latencies Over Time:延迟时间
over time.png
Throughput Charts:

Hits Per Second: 每秒点击率
Codes Per Second:每秒状态码数量
Transactions Per Second:每秒事务量
Response Time Vs Request:响应时间点请求的成功与失败数
Latency Vs Request:延迟时间点请求的成功与失败数
Throughput Charts.png
Response Times Charts:

Response Time Percentiles:响应时间百分比
Active Threads Over Time:激活线程数
Time Vs Threads:响应时间用户数, X轴表示的是活动线程数,也就是并发访问的用户数,Y轴表示的是响应时间,F(X,Y)表示在某种并发量的情况下,系统的响应时间是多少
Response Time Distribution:响应时间分布
Response Times Charts.png
4、添加所需监听器,导入日志文件即可查看
在性能测试过程中,我们往往需要将测试结果保存在一个文件当中,也可以为日后的性能测试报告提供更多的素材

在Jmeter中,结果都存放在 .jtl 文件中,格式有很多种,可以根据需要进行更爱,选择某个监听器,在configure页面进行相应配置,让我们来查看下保存后的文件有哪些内容:

日志文件内容.png
timeStamp:请求发出的绝对时间
elapsed:响应时间
label:HTTP请求名称
responseCode:请求返回码
responseMessage:请求返回消息
threadName:请求所属的线程名称
dataType:数据类型
success:是否成功
failureMessage:失败信息
bytes:字节
sentBytes:发送字节数
grpThreads:
allThreads:
Latency:延迟
IdleTime:思考时间
Connect:连接
接下来添加一个聚合报告,然后导入日志文件,查看结果,还可以添加其他的监听器,操作方法一样

导入日志文件.png
PS:如果测试计划中增加了监听器(生成概要结果),在执行命令时就可以看到每个线程的执行情况

查看每个线程的执行情况.png
PS:设置好线程数、循环次数、集合点、事务、断言、关联等等后即可执行压力测试

最后,大并发下还是需要进行分布式性能测试
原理和LR的agent差不多,因为jmeter由Java开发,耗内存、cpu,所以需要采用分布式

步骤:
1、关闭防火墙
2、在所要运行jmeter并作为负载生成器的机器上安装jmeter(确保在所有系统中使用了相同版本号的Jmeter和jdk)
PS:目标服务器需要在相同网段,确保Jmeter可以访问目标服务器
3、确定其中一台机器作为主controller,其他的机器作为agent,然后运行所有agent机器上的jmeter-server文件
4、在controller机器的jmeter中bin目录下,找到jmeter.properties文件,添加节点IP,修改localhost为压力机IP

image.png
5、启动conttoller机子上的jmeter应用,选择菜单【运行】—远程启动来分别启动agent,也可以直接选择【远程全部启动】来将所有个agent启动

在性能测试过程中,我们通常需要将测试结果保存在一个文件当中,既可以保存测试结果,也可以为日后的性能测试报告提供更多的素材

Jmeter中,结果都存放在.jtl文件,一般以csv文件格式记录,只需要选择某个监听器,点击页面的configure按钮,建议勾选如下项:Save Field Name,Save Assertion Failure Message

Jmeter的应用场景:性能测试(接口层)
技术点:HTTP相关设置+参数化+断言+关联+简单控制器+查看结果树
关联:通过Json控件或正则表达式获取
(1)线程组建议替换为jp@gc - Stepping Thread Group,功能比线程组多很多

线程
this group will start N threads:相当于LR中的并发数
First,wait for N seconds:启动第一个线程之前,需要等待N秒
Then start N threads:设置最开始启动N个线程
Next,add N1 threads every N2 seconds,using ramp-up N3 seconds:在N3秒内启动N1个线程,启动的策略为每隔N2秒启动一个
Then hold load for N seconds:并发数全部达到后再运行多久
Finally,stop N1 threads every N2 seconds:每隔N2秒停止N1个
(2)可以加事务控制器
(3)查看结果树替换为聚合报告或类似的报告,如果还是想看查看结果树记得勾选仅日志错误(查看结果树打印的日志比较多,会影响性能)
(4)造数据

总结:
一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。
比较独立的接口,可以统一放在一个线程组内,顺序完成测试。

流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性

发布了33 篇原创文章 · 获赞 12 · 访问量 904

猜你喜欢

转载自blog.csdn.net/weixin_45630042/article/details/103603101