ab性能测试工具
简介
ab是apache自带的压力测试工具,命令全称为apachebench, 他是一个httpd自带的很好用的压力测试工具,ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问,根据参数的配置,可以控制请求的并发量,以此查看被测试服务器接受处理请求的能力上线。
安装
在centos系统上,直接使用yum安装即可,如果不想安装apache但是又想使用ab命令,可以直接安装apache的工具包httpd-tools
yum -y install httpd-tools
安装完成后,执行 ab -V 查看版本,测试是否可以正常使用。
基本使用
通过执行ab -help查看参数说明。常用的参数为
-n:测试请求的个数。默认时,仅执行一个请求。 -c:每次产生的请求个数。默认是一次一个。 -t:本次测试所进行的最大秒数。其内部隐含值是-n 50000。 -p:指定一个文件,该文件中包含了需要POST的数据的文件。发送数据文件的同时,需要使用 -T 参数指定这个数据的格式,也就是请求头中的content-type,常见的'application/x-www-form-urlencoded' 默认是'text/plain'。 -P:对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。 -T:POST数据所使用的Content-type头信息。
示例
假设测试接口为 http://*.com/news/ 。使用ab 命令批量访问即可
ab -n 10 http://*.com/news
如果该接口需要提供请求参数,无法直接测试该url,而应该使用-p指参数文件,例如: http://*.com/news/user_id=123&cursor=Jdag
# 错误的测试方式 ab -n 1 http://*.com/news?user_id=123&cursor=Jdag # 正确的方式 ab -n 1 -p para.txt -T application/x-www-form-urlencoded http://*.com/news/
-p para.txt 指定para文件中的内容为参数(注意文件的路径,这里使用当前目录相对位置),文件中写入参数的内容即可,例如
user_id=123&cursor=Jdag
-T application/x-www-form-urlencoded 指定了para.txt文件中内容的格式,该格式规定内容的形式的 k1=v1&k2=v2 的格式。