前言
有时需要简单的测试下并发时的场景需要用到工具模拟并发请求
工具
ab是apache自带的网站压力测试工具。
使用起来非常的简单和方便。
不仅仅是可以apache服务器进行网站访问压力测试,还可以对其他类型的服务器进行压力测试。
比如nginx,tomcat,IIS等
首先当然是下载安装了。
在这里只讲window下在下载安装
官方下载地址:(https://www.apachehaus.com/cgi-bin/download.plx)
下载完成后解压
我就直接解压到d盘的apacheab中去了
修改解压根目录下的conf/httpd.conf文件的端口配置,默认是80端口,应该是被占用了,无法安装,可以自行修改为其他,我在这里修改为8088端口
然后输入命令安装:
httpd -k install
接下来就是测试了
测试
1、呼出控制台
可以使用系统自带cmd或者Xshell工具均可
2、进入apache下的bin目录ab.exe就在此处
使用方式:ab [options] [http://]hostname[:port]/path
这里我只介绍常用命令
-n:总请求次数(最小默认为1)
-c:并发次数(最小默认为1且不能大于总请求次数,如:10个请求,10个并发,实际就是1人请求1次)
-p:post参数文档路径(-p和-T参数要配合使用)
-T:header头内容类型(此处切记是大写英文字母T)
后面直接写请求路径即可:http://www.test.com/xxx/xxx.html
3、无参方式请求
输入:ab -n 10 -c 10 http://paycenter.gotrip8.com/querypay.aspx
4、Get方式请求
输入:ab -n 10 -c 10 “http://paycenter.gotrip8.com/querypay.aspx?Version=1.0&InputCharset=GBK&SignType=MD5&PlatFormCode=CPOTA&OrderNo=TEST0123456784&Sign=185FA68CA23AAE7B3A02A226ABD30297”
注意:请求URL要使用双引号括起来,否则ab无法识别&符号
5、Post方式
6、测试结果
主要看三个数据
Requests per second:吞吐率
服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests
Time per request:上面的是用户平均请求等待时间
处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)
Time per request:下面的是服务器平均请求处理时间
处理完成所有请求数所花费的时间 / 总请求数,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也=用户平均请求等待时间/并发用户数,即
Time per request / Concurrency Level
可以根据固定并发数,增加请求次数或者固定请求次数,调整并发数来查看上面三个值得变化来调优服务器