压力测试工具
推荐链接
压力测试工具 Apache Bench (ab)
下面是我使用ab进行测试的效果图
abs.exe -n 100 -c 20 测试网址
abs.exe -n 100 -c 20 https://www.baidu.com/
//-n 后面的100,表示总共发出100 个请求;
//-c 后面的20 ,表示采用20 个并发(模拟 20 个人同时访问),
//后面的网址表示测试的目标URL。
//先用账户和密码登录后,用开发者工具找到标识这个会话的Cookie值(Session ID)记下来
//如果只用到一个Cookie,那么只需键入命令:
ab -n 100 -C key=value https://www.baidu.com/
//如果需要多个Cookie,就直接设Header:
ab -n 100 -H “Cookie: Key1=Value1; Key2=Value2” https://www.baidu.com/
格式:ab [options] [http://]hostname[:port]/path
下面是参数
-n requests Number of requests to perform //本次测试发起的总请求数
-c concurrency Number of multiple requests to make //一次产生的请求数(或并发数)
-t timelimit Seconds to max. wait for responses //测试所进行的最大秒数,默认没有时间限制。
-r Don't exit on socket receive errors. // 抛出异常继续执行测试任务
-p postfile File containing data to POST //包含了需要POST的数据的文件,文件格式如“p1=1&p2=2”.使用方法是 -p 111.txt
-T content-type Content-type header for POSTing
// POST 数据所使用的 Content-type 头信息,如 -T “application/x-www-form-urlencoded” 。 (配合-p)
-v verbosity How much troubleshooting info to print
//设置显示信息的详细程度 – 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。
-C attribute Add cookie, eg. -C “c1=1234,c2=2,c3=3” (repeatable)
//-C cookie-name=value 对请求附加一个Cookie:行。 其典型形式是name=value的一个参数对。此参数可以重复,用逗号分割。
提示:可以借助session实现原理传递 JSESSIONID参数, 实现保持会话的功能,如-C ” c1=1234,c2=2,c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8″ 。
-w Print out results in HTML tables //以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-i Use HEAD instead of GET
Server Software: swoole-http-server #测试目标服务器使用的WEB服务和版本
Server Hostname: 127.0.0.1 #测试目标服务器的地址
Server Port: 9502 #测试目标服务器的端口
Document Path: / #测试目标服务器的路径
Document Length: 12 bytes #请求的页面大小
Concurrency Level: 10 #并发量
Time taken for tests: 0.007 seconds #测试总共耗时
Complete requests: 100 #完成的请求
Failed requests: 0 #失败的请求
Total transferred: 16000 bytes #总共传输数据量
HTML transferred: 1200 bytes #所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度
Requests per second: 14267.37 [#/sec] (mean) #每秒钟的请求量。(仅仅是测试页面的响应速度)
Time per request: 0.701 [ms] (mean) #等于 Time taken for tests/(complete requests/concurrency level) 即平均请求等待时间(用户等待的时间)
Time per request: 0.070 [ms] (mean, across all concurrent requests) #等于 Time taken for tests/Complete requests 即服务器平均请求响应时间 在并发量为1时 用户等待时间相同
Transfer rate: 2229.28 [Kbytes/sec] received #平均每秒多少K,即带宽速率
Connection Times (ms)
min mean[+/-sd] median max #min(最小值) mean[+/-sd](平均值[标准差]) median(中位数) max(最大值)
Connect: 0 0 0.1 0 1 #连接时间(毫秒)
Processing: 0 0 0.2 0 1 #处理时间(毫秒)
Waiting: 0 0 0.1 0 1 #等待时间(毫秒)
Total: 0 1 0.2 1 1 #总时间(毫秒)
Percentage of the requests served within a certain time (ms) #在特定时间范围内处理请求的百分比(毫秒)
50% 1
66% 1
75% 1
80% 1
90% 1
95% 1
98% 1
99% 1
100% 1 (longest request) #最长请求时间