Apache ab测试工具使用方法(无参、get传参、post传参)

Ab测试工具是apache自带的测试工具,具备简单易上手的特性,下面我总结一下个人使用方法,首先去官方下载apache程序包,我下的最新版本apache2.4.23,下载地址http://httpd.apache.org/download.cgihtml

我下载的windows版本,解压后放到某一目录便可。shell

一、呼出控制台apache

可使用系统自带cmd或者Xshell工具都可json

 

二、进入apache下的bin目录ab.exe就在此处windows

 

三、使用方法服务器

直接在此目录下输入ab回车就会罗列出使用帮助并发

使用方式:ab [options] [http://]hostname[:port]/pathapp

这里我只介绍经常使用命令工具

-n:总请求次数(最小默认为1)post

-c:并发次数(最小默认为1且不能大于总请求次数,如:10个请求,10个并发,实际就是1人请求1次)

-p:post参数文档路径(-p和-T参数要配合使用)

-T:header头内容类型(此处切记是大写英文字母T)

后面直接写请求路径便可:http://www.test.com/xxx/xxx.html

 

四、无参方式请求

输入:ab -n 10 -c 10 http://paycenter.gotrip8.com/querypay.aspx

 

五、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没法识别&符号

 

六、Post方式请求

参数文档:参数文档内容使用“key=value&key=value&key=value...”方式进行拼接,还有json的方式,但我实验没有成功,接收不到参数,具体缘由未知

输入:ab -n 10 -c 10 -p d:\test\querypay.txt -T application/x-www-form-urlencoded http://paycenter.gotrip8.com/querypay.aspx

注意:-p是参数文档路径,-T是大写英文字母,post表单格式为:application/x-www-form-urlencoded

 

七、测试结果

主要看三个数据

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

能够根据固定并发数,增长请求次数或者固定请求次数,调整并发数来查看上面三个值得变化来调优服务器

 

八、未解决问题

在使用中我发现两个问题

一是没法传递json的post参数,网上的方法都试过了,接不到参数

二是传参时没法改变参数,或者说没法传递不一样参数,好比下单接口测试,每次都应该传递不一样的订单号,或者注册接口,每次都应该传递不一样的帐号密码,但在参数文档中如何写也实现不了,还望高手解答,谢谢

相关文章
相关标签/搜索