一, AB 压力测试工具(ApacheBench)
1. 安装
Linux 安装
yum -y install httpd-tools
windos 安装
- // 下载 Apache 软件(ab 软件不单独更新, 而是独立集成到 Apache)
- download https://de.apachehaus.com/downloads/httpd-2.4.39-o102s-x64-vc14.zip
- // 打开压缩包
- unzip httpd-2.4.39-o102s-x64-vc14.zip
- // 将 bin 目录里面的 ab.exe 或者 abs.exe 复制出来放到系统环境变量路径下
2. 使用
常用案例
- abs -c 200 -n 1000 http://www.baidu.com/index.html
- ab -c 200 -n 1000 http://www.baidu.com/index.html
3. 参数解释
参数内容
-n 即 requests, 用于指定压力测试总共的执行次数.
-c 即 concurrency, 用于指定的并发数.
-t 即 timelimit, 等待响应的最大时间(单位: 秒).
-b 即 windowsize,TCP 发送 / 接收的缓冲大小(单位: 字节).
-p 即 postfile, 发送 POST 请求时需要上传的文件, 此外还必须设置 - T 参数.
-u 即 putfile, 发送 PUT 请求时需要上传的文件, 此外还必须设置 - T 参数.
-T 即 content-type, 用于设置 Content-Type 请求头信息, 例如: application/x-www-form-urlencoded, 默认值为 text/plain.
-v 即 verbosity, 指定打印帮助信息的冗余级别.
-w 以 HTML 表格形式打印结果.
-i 使用 HEAD 请求代替 GET 请求.
-x 插入字符串作为 table 标签的属性.
-y 插入字符串作为 tr 标签的属性.
-z 插入字符串作为 td 标签的属性.
-C 添加 cookie 信息, 例如:"Apache=1234"(可以重复该参数选项以添加多个).
-H 添加任意的请求头, 例如:"Accept-Encoding: gzip", 请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个).
-A 添加一个基本的网络认证信息, 用户名和密码之间用英文冒号隔开.
-P 添加一个基本的代理认证信息, 用户名和密码之间用英文冒号隔开.
-X 指定使用的和端口号, 例如:"126.10.10.3:88".
-V 打印版本号并退出.
-k 使用 HTTP 的 KeepAlive 特性.
-d 不显示百分比.
-S 不显示预估和警告信息.
-g 输出结果信息到 gnuplot 格式的文件中.
-e 输出结果信息到 CSV 格式的文件中.
-r 指定接收到错误信息时不退出程序.
-h 显示用法信息, 其实就是 ab -help.
4. 报告内容解释
结果内容
- Server Software: nginx/1.10.2 (服务器软件名称及版本信息)
- Server Hostname: 192.168.1.106 (服务器主机名)
- Server Port: 80 (服务器端口)
- Document Path: /index.HTML (供测试的 URL 路径)
- Document Length: 3721 bytes (供测试的 URL 返回的文档大小)
- Concurrency Level: 1000 (并发数)
- Time taken for tests: 2.327 seconds (压力测试消耗的总时间)
- Complete requests: 5000 (总次数)
- Failed requests: 688 (失败的请求数)
- Write errors: 0 (网络连接写入错误数)
- Total transferred: 17402975 bytes (传输的总数据量)
- HTML transferred: 16275725 bytes (HTML 文档的总数据量)
- Requests per second: 2148.98 [#/sec] (mean) (平均每秒的请求数, 服务器的吞吐量)
Time per request: 465.338 [ms] (mean) (所有并发用户 (这里是 1000) 都请求一次的平均时间)
Time request: 0.247 [ms] (单个用户请求一次的平均时间)
Transfer rate: 7304.41 [Kbytes/sec] received 每秒获取的数据长度 (传输速率, 单位: KB/s)
- ...
- Percentage of the requests served within a certain time (ms)
- 50% 347 ## 50% 的请求在 347ms 内返回
- 66% 401 ## 60% 的请求在 401ms 内返回
5. 参考文档
CentOS 7 ab 压力测试安装与解释
链接一
链接二
二, http_load 压力测试工具
1. 安装
- yum -y install gcc
- wget http://www.acme.com/software/http_load/http_load-09Mar2016.tar.gz
- tar zxf http_load-09Mar2016.tar.gz
- cd http_load-09Mar2016
- make && make install
三, webbench 压力测试工具
1. 安装
- wget http://soft.vpser.net/test/webbench/webbench-1.5.tar.gz
- tar zxvf webbench-1.5.tar.gz
- cd webbench-1.5
- make && make install
2. 使用
webbench -c 并发数 -t 运行测试时间 URL
webbench -c 5000 -t 120 http://www.google.com
四, Siege 压力测试工具
1. 安装
- wget http://download.joedog.org/siege/siege-4.0.4.tar.gz
- tar zxf siege-4.0.4.tar.gz
- cd siege-4.0.4/
- ./configure
- sudo make
- sudo make install
- siege -V
2. 应用举例
基础应用
siege -c10 -r1 -p url
支持多个 Header 参数
siege -c10 -r1 -p --header="Authorization: 123456" --header="sg: 123456"
支持 application/JSON 方式请求
siege -c1 -r1 "http://localhost:8080/api/test PUT < input.json"
支持从文件读取 url
siege -c9 -r1 -f url.txt
3. 参考资料
https://www.jianshu.com/p/74c465ff136f
来源: http://www.bubuko.com/infodetail-3120929.html