ab简洁:
ab是apache自带的压力测试工具,ab是apachebench命令的缩写。
ab不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。
ab是一个httpd自带的很好用的压力测试工具,ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。
可以用来测试apache的负载压力,也可以 用来测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力负载性能。
ab安装:
如果使用rpm安装包,直接使用yum --install rpm包名
如果不想安装apache但是又想使用ab命令,可以直接安装apache的工具包httpd-tools。
先cd到httpd-tools的所在目录,使用如下命令安装:
查看ab是否安装:
yum -y install httpd-tools
查看帮助文档
压测实例:
压测如下接口:
执行脚本后,cpu已经开始跑起来
正确的写法:
可以通过tomcat下的日志查看请求结果
注意:
在进行示例时使用的连接一般都是http://*.com,这种写法是没有带参数,如果你想测试一个写入的Case,那需要传递参数给后台,如何传递参数呢?
这里有一个登录的请求,需要登录名和密码,路径是这样的:
http://*/login.action?userName=admin&userPassWord=admin
使用该连接进行测试:ab -n 1 http://*/login.action?userName=admin&userPassWord=admin
发现由于存在特殊字符& ,虽然命令执行成功,但是并不能处理 & 后的参
他有两个参数:p(小写),T(大写),注意区分大小写,一个是用于指定POST请求时的参数文件,一个用于指定请求的类型Content-type,关于Content-type的类型,大家可以百度。
在AB命同级目录建立一个文件:para.txt,在里面写入要传递的参数:userName=admin&userPassWord=admin
指定请求类型为:application/x-www-form-urlencoded
完整的命令为:ab -n 1 -p para.txt -T application/x-www-form-urlencoded http://*/login.action
如此就可以将需要的两个参数传递到后台
主要参数:
-n:在测试会话中所执行的请求个数。默认时,仅执行一个请求。
-c:一次产生的请求个数。默认是一次一个。
-t:测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p:包含了需要POST的数据的文件。
-P:对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。
-T:POST数据所使用的Content-type头信息。