jmeter执行脚本的两种方式
1.GUI页面
2.命令行
jmeter -n -t [jmx file] -l [result file] -e -o [Path to output folder]
- jmx file:测试计划的文件名称
- result file:输出文件路径,可以是结果日志名称
- Path to output folder:要保存的report文件路径
- -n:非GUI模式执行JMeter
- -t:执行测试文件所在的位置
- -l:指定生成测试结果的保存文件,jtl文件格式
- -e:测试结束后,生成测试报告
- -o:指定测试报告的存放位置
每次运行时必须保证[result file]和[Path to output folder]内无文件/无同名文件
否则将会报错
An error occurred: Cannot write to './HTMLReport' as folder is not empty
~apache-jmeter-5.1.1/bin/jmeter -n -t ~/make_data.jmx -Jthread_count=1 -Jloop_count=2 -l log.jtl -e -o ./HTMLReport
上面这个命令中"-Jthread_count=1 -Jloop_count=2"的意思是传参,传thread_count这个变量的值为1,loop_count这个变量的值为2.这两个变量名是已经在脚本里设定了.
- 传参格式: -J变量名
-
声明变量: ${__P(变量名,默认值)}
利用已有jtl文件进行html报告生成
jmeter -g test.jtl -o /path
- -g:后跟test.jtl文件所在的路径
- -o:后跟生成的HTML文件存放的路径
Report解读
解读顺序为从上到下,从左到右
Dashboard
Test and Report informations 测试和报告信息
-
APDEX (Application Performance Index) APDEX(应用程序性能指数)
指标大体看Apdex,区间为0-1,1为最高;具体解析:看wikihttps://en.wikipedia.org/wiki/Apdex
Requests Summary 要求摘要
KO为失败请求数,OK为成功请求数-
Statistics 统计
一级菜单:请求、执行、响应时间ms、吞吐量/s、网络/kb
二级菜单:可点击进行倒叙或者顺序的排列一级菜单 二级菜单 请求 请求名 执行 样本数 执行 失败数 执行 失败率 吞吐量/s 平均响应时间 吞吐量/s 最小响应时间 吞吐量/s 最大响应时间 吞吐量/s 90%请求的时间 吞吐量/s 95%请求的时间 吞吐量/s 每秒通过事务数 网络/kb 接受网络速率 网络/kb 发送网络速率 Errors 错误
Top 5 Errors by sampler 采样器的前5个错误
Charts 图表
Over Time
Test and Report informations 测试和报告信息
-
Response Times Over Time 随着时间的响应时间
可通过tps和并发数判断,某接口性能临界点(拐点)
Response Time Percentiles Over Time (successful responses) 随时间变化的响应时间百分比(成功响应)
从宏观层面观察一定时间段内90、95、99、最高、最小响应时间的阴影面积Active Threads Over Time 随着时间的推移活动线程
与上方两个图搭配,可判断出现性能峰值是否因为并发数增加导致Bytes Throughput Over Time 随着时间推移的字节吞吐量
常用于上传下载等测试,系统I/O情况测试Latencies Over Time 随着时间的响应延时
金融行业领域等强关联性及及时性要求场景,重要关注的因素Connect Time Over Time 随着时间的推移连接时间
用于判断响应时间中请求时间的比例(是否因为请求方网速不好)
Throughput 吞吐量(事务数)
- Hits Per Second 每秒点击次数
同一秒钟发送的请求数 - Codes Per Second 每秒状态码分布
可以看出如果出现请求异常大体是什么原因造成 - Transactions Per Second 每秒事务数
tps 性能层面非常重要的指标(接口层面) - Total Transactions Per Second 每秒事务总数
宏观层面总的tps - Response Time Vs Request 响应时间Vs请求
我也不会看这个,知道的同学麻烦指教一下 - Latency Vs Request 延迟与请求
这个我也不会看这个,知道的同学麻烦指教一下
Response Times 响应时间
- Response Time Percentiles 响应时间百分比
宏观层面判断接口中绝大多数响应时间 - Response Time Overview 响应时间概述
分为<500ms.<1500ms.>1500ms.错误 四种概述 - Time Vs Threads 时间与线程
判断性能拐点与线程(并发数)之间的关系 - Response Time Distribution 响应时间分布
相对细分的响应时间概览