Jmeter5.x多维度HTML可视化数据报告实战
详细的测试报告往往是反应项目能否上线的必要数据,作为测试人员在项目测试完成后,需要提供详细的测试结果,让开发人员,产品经理,项目经理等项目相关负责人开会决定项目是否达到客户预期要求,可否按周期上线。
Jmeter提供了自动生成html可视化报告的支持,且支持在GUI和非GUI环境生成可视化的html报告;本章节主要使用“课程列表”和“秒杀接口”进行压测,生成可视化html报告,并对报告各项参数详细讲解,让开发人员和测试人员掌握分析html可视化报告的技巧。
案例实战:
需求:使用本专题提供的项目中,“课程列表”和“秒杀接口”进行压测,并导出HTML可视化数据报告;Jmeter5.x后端口接口部署与接口文档介绍
1、使用Jmeter在GUI环境下分别创建:线程组,HTTP采样器(课程列表和秒杀接口),聚合报告,察看结果树;
线程组:线程组设置100,循环测试勾选为永远,并启用调度器设置120秒(即2分钟)
HTTP采样器(课程列表和秒杀接口):分别创建两个采样器,并按以下示例进行接口参数录入;其中提供的API中,“秒杀接口”做了随机时间进行线程阻塞,来达到与实际秒杀耗时场景;
聚合报告和察看结果树:为了方便在GUI环境下实时查看请求和响应结果报告;详情参考:Jmeter5.x线程组和Sampler基础组件-第一个测试计划
2、启动测试计划,通过聚合报告和察看结果树来判断测试计划是否有需要调整;
结果:接口请求都可以正常响应数据,且聚合报告数据显示正常,错误率为0;之后将测试计划保存下来,推荐使用英文名称,如:test.jmx;后期需要上传到非GUI服务器做内网压测,中文会无法使用命令行启动,
3、windows下使用cmd运行Jmeter脚本文件,并生成HTML可视化报告;使用cmd切换到Jmeter的bin目录下,用以下命令启动测试计划;
jmeter -n -t D:/article/html可视化报告测试.jmx -l D:/article/html/temp/jtl/result.jtl -e -o D:/article/html/temp/result
参数说明:
- -n:非gui方式运行jmeter
- -t :jmx 脚本路径
- -l:result.jtl 运行结果保存路径,注意:.jtl 文件名不能重复,文件夹需要存在
- -e:在脚本运行结束后生成 HTML 报告
- -o:用于存放 HTML 报告的目录,文件夹需要存在
windows下cmd执行测试计划效果:
到路径存放html可视化报告进行查看,本示例路径:“D:/article/html/temp/result”
HTML可视化报告如下的:
HTML可视化报告参数讲解:
-
dashboard讲解-核心报告
-
Test and Report informations
- Source file:jtl文件名
- Start Time:压测开始时间
- End Time:压测结束时间
- Filter for display:过滤器
- Lable:sampler采样器名称
-
APDEX(Application performance Index)
- apdex:应用程序性能指标,范围在0~1之间,1表示达到所有用户均满意
- T(Toleration threshold):可接受阀值
- F(Frustration threshold):失败阀值
-
Requests Summary
- OK:成功率
- KO:失败率
-
Statistics 统计数据
- lable:sampler采样器名称
- samples:请求总数,并发数*循环次数
- KO:失败次数
- Error%:失败率
- Average:平均响应时间
- Min:最小响应时间
- Max:最大响应时间
- 90th pct: 90%的用户响应时间不会超过这个值
- 95th pct: 95%的用户响应时间不会超过这个值
- 99th pct: 99%的用户响应时间不会超过这个值 (存在极端值)
- throughtput:Request per Second吞吐量 qps
- received:每秒从服务器接收的数据量
- send:每秒发送的数据量
-
-
charts讲解-可视化图形
-
Over Time(随着时间的变化)
- Response Times Over Time:响应时间变化趋势;
- Response Time Percentiles Over Time (successful responses):最大,最小,平均,用户响应时间分
- Active Threads Over Time:并发用户数趋势;模拟的线程数;
- Bytes Throughput Over Time:每秒接收和请求字节数变化,蓝色表示发送,黄色表示接受
- Latencies Over Time:平均响应延时趋势
- Connect Time Over Time :连接耗时趋势
-
Throughput
- Hits Per Second (excluding embedded resources):每秒点击次数
- Codes Per Second (excluding embedded resources):每秒状态码数量
- Transactions Per Second:即TPS,每秒事务数
- Response Time Vs Request:响应时间和请求数对比
- Latency Vs Request:延迟时间和请求数对比
-
Response Times
- Response Time Percentiles:响应时间百分比
- Response Time Overview:响应时间概述
- Time Vs Threads:活跃线程数和响应时间
- Response Time Distribution:响应时间分布图
-
注意事项:
1、在使用Jmeter进行压测时,常规需要在非GUI对系统进行压测,官方也推荐使用Jmeter的GUI做测试计划的编写,然后再将测试计划传到非GUI的内网环境下进行压测;
常规大厂测试流程参考:常规项目压测流程
2、Jmeter的HTML可视化测试报告是英文版,如果需要中文版本参考博文:Jmeter的Html报告汉化及解析
3、Jmeter默认的JVM只设置了1g,在做测试时可以根据服务器配置进行调整,以便让Jmeter更好的发挥;