1.安装ab
yum install httpd-tools
2.常用命令
ab -n xxx -c xxx xxx
-n 后面参数是要发送的总的请求数,-c后面参数是并发数,即每次要并发发送多少个请 求,最后一个参数是你要请求的接口地址,就是url
#模拟1个客户端请求100次:
$ ab -n 100 http://www.example.com/
#模拟100个客户端请求10000次
$ ab -n 10000 -c 100 http://www.example.com/
#调用POST方法的接口10次,传输的数据格式为JSON
$ ab -n 10 -p json-file –T content-type http://www.example.com/
#表示每次并发200个请求,总共请求2000次,并把结果输出到指定文件里$ ab -n 2000 -c 200 http://www.example.com/ >>d:1.html
3.测试结果分析
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.baidu.com (be patient)
Server Software: BWS/1.1 # 平台前端服务器类型
Server Hostname: www.baidu.com # 服务器主机名
Server Port: 80 # 服务器端口
Document Path: / # 访问的路径
Document Length: 285633 bytes # 返回数据大小
Concurrency Level: 10 # 并发数
Time taken for tests: 59.993 seconds # 整个测试持续的时间
Complete requests: 500 # 完成的请求数量
Failed requests: 490
表示失败的请求数,这里的失败是指请求的连接服务器、发送数据、接收数据等环节发生异常,以及无响应后超时的情况。对于超时时间的设置可以用ab的-t参数。而如果接受到的http响应数据的头信息中含有2xx以外的状态码,则会在测试结果显示另一个名为“Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算是失败的请求
(Connect: 0, Receive: 0, Length: 490, Exceptions: 0)
整个场景中的网络传输量,表示所有请求的响应数据长度总和,包括每个http响应数据的头信息和正文数据的长度。注意这里不包括http请求数据的长度,所以Total transferred代表了从Web服务器流向用户PC的应用层数据总长度。通过使用ab的-v参数即可查看详细的http头信息
Total transferred: 143437851 bytes
HTML transferred: 142854878 bytes # 整个场景中的HTML内容传输量,表示所有请求的响应数据中正文数据的总和,也就是减去了Total
Requests per second: 8.33 [#/sec] (mean) # 每秒钟平均处理的请求数(相当于 LR 中的 每秒事务数)这便是我们重点关注的吞吐率,它等于:Complete requests / Time
Time per request: 1199.860 [ms] (mean) # 每次并发请求时间(当前并发10)
Time per request: 119.986 [ms] (mean, across all concurrent requests) # 平均每个请求处理时间,所有并发的请求加一起
Transfer rate: 2334.87 [Kbytes/sec] received # 平均每秒网络流量
# 花费在连接Connect,处理Processing,等待Waiting的时间的最小min,平均值mean,标准差[+/-sd],中值median,最大表max的一个表。
Connection Times (ms)
min mean[+/-sd] median max
Connect: 9 113 55.8 107 446 # 连接
Processing: 474 1078 339.6 1016 6534 # 处理
Waiting: 9 170 93.0 156 671 # 等待
Total: 566 1191 351.9 1114 6645 # 总量
Percentage of the requests served within a certain time (ms)
50% 1114 # 50%的用户响应时间小于1114毫秒
66% 1222 # 66%的用户响应时间小于1222毫秒
75% 1296 # 以此类推...
80% 1365
90% 1602
95% 1728
98% 1815
99% 1839
100% 6645 (longest request)
Comments NOTHING