本章主要说明2个方法查看压测结果
Aggregate Report
Aggregate Report翻译为聚合报告,是JMeter常用的一个Listener。
添加路径:右键Thread Group或Test Plan > Add > Listener > Aggregate Report
配置了HTTP Request和Aggregate Report后,运行,然后查看Aggregate Report,可以看到压测结果
Aggregate Report输出结果为:
相关字段说明:
字段名 | 描述 |
---|---|
Label | 请求的名称,即HTTP Request的名称 |
# Samples | 总共发给服务器的请求数量 |
Average | Request的平均响应时间 |
Median | 50%用户的请求的响应时间,中位数。即有一半的请求响应时间大于该值,一半小于该值 |
90% Line | 90%的请求的响应时间 |
95% Line | 95%的请求的响应时间 |
99% Line | 99%的请求的响应时间 |
Min | 最小的响应时间,即最快的 |
Maximum | 最大的响应时间,即最慢的 |
Error % | 错误率,错误率=错误的请求的数量/请求的总数 |
Throughput | 吞吐量,每秒/每分钟处理的Request数,即每秒服务器完成的请求数(Request per Second) |
Received KB/sec | 每秒从服务器端接收到的数据量 |
Sent KB/sec | 每秒发送给服务器的数据量 |
90% Line的具体解释:
百分位数为统计学术语,如果将一组数据从大到小排序,并计算响应的累计百分位,则某一百分位对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列如,处于p%位置的值称第p百分位数
90% Line:一组数由小到大进行排列,找到他的第90%个数(假如是12),那么这个数组中有90%的数将小于等于12 。 用在性能测试的响应时间也将非常有意义,也就是90%请求响应时间不会超过12 秒。
命令行执行
在测试服务器性能的时候,JMeter本身的客户端也会在一定程度上消耗本机的性能,对性能执行结果也会有一定影响,所以JMeter官方也建议,尽量使用命令行去执行,界面端的JMeter只是作为辅助工具。
所以,我们可以在客户端配置Thread Group、HTTP Request等最基本的配置,至于Aggregate Report、View Results Tree等与测试无关的就不配置了,尽可能的减小对本机性能的消耗,尽可能的保证性能测试的准确。
Jmeter客户端配置好基本的内容并保存
保存之后,打开命令行工具,切换到JMeter安装的bin目录下,命令行执行JMeter脚本
命令:jmeter -n -t xxx.jmx -l yyy.jtl
- xxx.jmx是要被执行的JMeter脚本即在JMeter客户端保存的脚本
- yyy.jtl为压测结果保存的文件,存放在命令行当前目录下
- -n:非GUI模式,即在非客户端模式下运行JMeter
- -t:指定待执行的JMeter脚本
- -l:指定日志文件,即输出相关结果到指定的文件中,一般是jtl文件
命令行执行后,每隔30秒会打印出30秒内的运行情况和运行至今的运行情况,找到日志文件,打开JMeter客户端,添加Aggregate Report,导入日志文件,可以查看执行结果:
小tips
1.在命令行执行的时候,需要修改某个配置时,可以使用文本工具打开JMeter脚本文件(即jmx),然后根据经验(嗯,就是经验)去修改字段值,实在不行就再去JMeter修改
2.在命令行调试合理的虚拟用户数的时候,可以根据其打印出来的Avg、Min、Max、Err等字段粗浅的判断服务器性能情况去调整,然后再正式运行查看具体的情况