Jmeter进行性能压测时,最好是在linux系统中进行测试。
因为在windows系统中,使用的是GUI模式。而GUI模式会占用的资源比较多(相对于命令模式),以及windows中的其它进程也会影响到jmeter的运行,得到的测试结果并不太符合实际(相对于在linux中而言)。
安装
- 安装jdk8
a.下载jmeter,并把该tgz文件拉到想要的路径中:https://pan.baidu.com/s/1QH6jsKYL_u_bupp0tS8aHg;提取码:h61f
b.用tar zxvf命令解压该文件
Jmeter命令的参数
-h:帮助
-n:非GUI模式
-t:指定要运行的Jmeter测试脚本文件
-l:记录结果的文件;每次运行之前(要确保之前没有运行过,即xxx.jtl不存在,不然报错)
-r:Jmeter.properties文件中指定的所有远程服务器
-e:在脚本运行结束后生成html报告
-o:用于存放html报告的目录(目录要为空,不然报错;若报错则清空该目录即可)
- 常用命令:
Linux:./jmeter -n -t ../test.jmx -l result.jtl -e -o ./test/
(实际上是运行jmeter.sh脚本文件)
Windows:jmeter.bat xxxx
HTML压测结果分析
ps.把测试结果xx.html拉到windows的浏览器上,对照着看
-
1、Dashboard页面讲解
a.Test and Report informations
Source file:jtl文件名
Start Time :压测开始时间
End Time :压测结束时间
Filter for display:过滤器
Lable:sampler采样器名称
b.APDEX(Application performance Index)
apdex:应用程序性能指标,范围在0~1之间,1表示达到所有用户均满意
T(Toleration threshold):可接受阀值;默认500ms
F(Frustration threshold):失败阀值;默认1500ms
Requests Summary
OK:成功率
KO:失败率
Statistics 统计数据
lable:sampler采样器名称
samples:请求总数,并发数*循环次数
KO:失败次数
Error%:失败率
Average:平均响应时间
Min:最小响应时间
Max:最大响应时间
90th pct: 90%的用户响应时间不会超过这个值(关注这个就可以了)
【例如:现在有10个用户的响应时间分别是:2ms,1ms,4,1,5,6,7,6,7,8;那现在把10%的峰值去掉,
这里就是去掉8.所以90th pct是7】
95th pct: 95%的用户响应时间不会超过这个值
99th pct: 99%的用户响应时间不会超过这个值 (存在极端值)
throughtput:Request per Second吞吐量 qps 【几千是低的,一般是上万,机器是16核32G这类的】
received:每秒从服务器接收的数据量
send:每秒发送的数据量
2、Charts报表讲解
讲解压测报告 html里面Charts的核心指标
- a.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:连接耗时趋势
- b.Throughput
Hits Per Second (excluding embedded resources):每秒点击次数
Codes Per Second (excluding embedded resources):每秒状态码数量
Transactions Per Second:即TPS,每秒事务数
Response Time Vs Request:响应时间和请求数对比
Latency Vs Request:延迟时间和请求数对比
- c.Response Times
Response Time Percentiles:响应时间百分比(一般看90那里)
Response Time Overview:响应时间概述
Time Vs Threads:活跃线程数和响应时间