记录|常用的性能测试工具使用
开发人员,掌握基本的接口并发测试,可以模拟一些并发场景,对系统的性能优化有很好的帮助
本文内容
- AB测试工具
- JMeter
AB测试工具
-
介绍
- ab 测试工具是 Apache 提供的一款测试工具,具有简单易上手的特点,在测试 Web 服务时非常实用。
-
ab的原理:
- ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。
安装
windows系统安装
下载地址https://www.apachelounge.com/download/
linux系统安装
yum-y install httpd-tools
帮助文档
输入ab
命令可以查看帮助说明
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yfO1SN7D-1571114059932)(压测工具使用实践.assets/1571042066230.png)]
使用
ab -n 50 -c 50 "http://127.0.0.1:8080/ab/list"
-n 表示执行多少个请求 ( -n requests Number of requests to perform)
-c 表示同一时间有多少个并发。( -c concurrency Number of multiple requests to make at a time)
以GET请求为例
测试结果分析:
- 基本的请求信息(请求的地址、端口、路径和传输的大小)。
Server Software:
Server Hostname: 127.0.0.1
Server Port: 8080Document Path: /ab/list
Document Length: 7 bytes
- 并发个数
Concurrency Level: 50
Time taken for tests: 0.184 seconds
- 请求完成个数
Complete requests: 50
Failed requests: 0
Total transferred: 6950 bytes
HTML transferred: 350 bytesRequests per second: 271.71 [#/sec] (mean) 每秒请求数(吞吐量)
Time per request: 184.020 [ms] (mean) 每次从请求到响应界面的总耗时
Time per request: 3.680 [ms] (mean, across all concurrent requests) 并发时每个请求的平均耗时
- 平均每秒网络上的流量,该信息可以进行测试是否存在流量过大导致请求延时的情况。
Transfer rate: 36.88 [Kbytes/sec] received
Connection Times (ms)
每个请求都有一个响应时间的分析,我们从数据中可以看出最低的响应时间为560毫秒。而有50%的响应时间为125毫秒,最高的请求响应时间为168毫秒。
Percentage of the requests served within a certain time (ms)
50% 125
66% 148
75% 150
80% 162
90% 166
95% 167
98% 168
99% 168
100% 168 (longest request)
演示POST请求
> .\ab.exe -n 50 -c 50 -p "post.txt" -T "application/x-www-form-urlencoded" "http://127.0.0.1:8080/ab/list"
post.txt
中存放请求参数,放置在bin目录下。内容如下:
name=test&age=1
- -n:总请求次数(最小默认为 1);
- -c:并发次数(最小默认为 1 且不能大于总请求次数,例如:10 个请求,10 个并发,实际就是 1 人请求 1 次);
- -p:post 参数文档路径(-p 和 -T 参数要配合使用);
- -T:header 头内容类型(此处切记是大写英文字母 T)。
以上就是AB的工具的基本使用了,上述的功能较为简单,但对我们日常并发测试也可以达到要求了。
下面介绍功能更完成的工具JMeter
JMeter测试工具
-
介绍
JMeter 是 Apache 提供的一款功能性比较全的性能测试工具,可以在 Windows 和 Linux 环境下安装使用。
安装
下载地址:https://jmeter.apache.org/download_jmeter.cgi
解压后 打开apache-jmeter-5.1.1\bin\jmeter.bat
即可启动
使用
入门使用可参考文章:https://www.cnblogs.com/TankXiao/p/4045439.html
文章中对JMeter的脚本编写。这里我主要介绍Jmeter的脚本录制的方法。
录制Jmeter的工具有很多,推荐使用一款谷歌插件 Blazemeter
插件。
下载安装之后,需要注册登录才可以进行录制成JMeter文件。界面如下:
点击开始即可进行录制。
录制成功后,可以点击Save进行导出成.jmx文件。
使用Jmeter将导出的文件导入。可以看到界面类似如下:(随便在网页上点击后录制的脚本)
在图中可以看到,ViewResult Tree 和 Summary Report 。是用于查看测试结果的,添加方式如下:
之后点击启动按钮,进行测试。下图是我的测试结果。
总结
AB和JMeter测试工具对比:
ab
- 场景:
- 单个接口的性能测试
- 优点:
- 简单
- 缺点
- 扩展性定,无法对整个业务流程测试的支持
JMeter
- 场景:
- 简单的并发测试,整个业务流程的测试、组合并发测试、csv动态导入变量、录制脚本
- 优点:
- 扩展性高
- 缺点
- 性能不稳定