Apache-ab是著名的Web服务器软件Apache附带的一个小工具,它可以模拟多个并发请求,测试服务器的最大承载压力。
一、安装Apache-ab
我下载的是windows版:
地址:http://httpd.apache.org/
如下3图:
---------------------嘤嘤嘤~我是分割线-------------
--------------嘤嘤嘤~我是分割线------------------
在bin目录下可以找到ab.exe
在命令框 cd到这个bin目录下
我第一次只输入.\ab,提示我错误。然后声明正确的格式
Usage: ab [options] [http://]hostname[:port]/path
这里我们还可以看到好多options
部分说明:
-n #指定在测试会话中所执行的请求个数。默认时,仅执行一个请求。(表示请求总数)
-c #指定一次产生的请求个数。默认是一次一个。(表示并发用户数)
-t #测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。(测试的最大时间)
-p #包含了需要POST的数据的文件.(文件格式如“p1=1&p2=2”文件名为111.txt,使用方法是 -p 111.txt)
-T #POST数据所使用的Content-type头信息。如-T“application/x-www-form-urlencoded”
-v #设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。
-w #以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-I #执行HEAD请求,而不是GET。
这里实际测试一下网易云课堂,用10个并发共执行1000次
(可以看到我第一次访问的是百度,但是百度用的是https,提示不支持https无法编译)
ab -n1000 -c10 http://study.163.com/
对比说明:
F:\Apache24\bin>ab -n100 -c10 http://study.163.com/
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking study.163.com (be patient).....done
Server Software: nginx #被测试服务器软件名称
Server Hostname: study.163.com #服务器主机名
Server Port: 80 #服务器端口
Document Path: / #请求的URL中的根绝对路径
Document Length: 314180 bytes #HTTP响应的正文长度
Concurrency Level: 10 #并发数
Time taken for tests: 5.020 seconds #整个测试耗时
Complete requests: 100 #总共完成的请求数量
Failed requests: 99 #呃,失败数99。。。(可能除了第一次剩下的99次全部错误。网易云课堂应该是对同一ip大量多次快速的访问做了限制)
(Connect: 0, Receive: 0, Length: 99, Exceptions: 0)
Total transferred: 31473840 bytes #测试过程中产生的网络传输总量Connect: 20 24 2.6 25 32 #socket链路建立消耗,代表网络状况好
Processing: 260 436 80.5 430 614 #写入缓冲区消耗+链路消耗+服务器消耗
Waiting: 55 81 24.1 75 200 #写入缓冲区消耗+链路消耗+服务器消耗+读取数据消耗
Total: 288 461 80.0 455 636 #单个事务总时间100% 636 (longest request)
#整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于455毫秒,60%的用户响应时间小于500毫秒,最大的响应时间小于636 毫秒
三、总结
1.ab 判断成功与否知识判断2xx 响应码,不接收服务器的返回值,所以同样的响应ab测试支持的并发数大于LR和Jemter,TPS的 响应值也会比较大
2.ab运行的测试并发数与ab所运行的机器的cpu的颗粒度有很大的关系,cpu颗粒度越大,测试结果支持的并发数越大
3.ab适合测试HTTP协议的URL的连接并发,特别是Web系统的首页
ok,结束!