ab介绍
ab是apache自带的压力测试工具,全称为apache bench,可以对服务器url或接口进行压力测试。
ab原理
原理是创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它不仅可以对apache服务器进行网站访问压力测试,也可以对其他类型的服务器进行压力测试,如nginx、tomcat、IIS等。
需要注意的是,ab命令对发出负载的计算机要求很低,既不会占用很高CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击。因此,在进行测试时需要注意控制负载量,避免对目标服务器造成过大的压力,导致资源耗尽或死机等问题。
下载安装
windows
安装包文件位置截图
设置全局变量
windows cmd命令行检测ab是否配置成功
ab -V
linux
apache的工具包httpd-tools
yum -y install httpd-tools
ab常用参数介绍
-n:指定测试的请求次数,默认为1000次。
-c:指定并发请求数,默认为100个并发请求。
-t:指定测试的总时间,默认为10秒。
-k:在每个请求中启用HTTP Keep-Alive连接。
-H:设置请求头信息。
-p:指定包含文件,可以将参数和GET请求体写入其中。
-T:设置请求体的内容类型。
-g:对URL进行GET请求。
-d:对URL进行HEAD请求。
-s:对URL进行POST请求,并包含在参数中指定的字符串作为请求体。
-v:详细输出模式,显示每个请求的细节信息。
ab使用
windows --》 cmd样例
ab -n 10000 -c 100 http://localhost:8080/
表示使用100个连接对http://localhost:8080/共请求10000次
-n 表示总共请求数
-c 表示并发数
执行结果一般以Requests per second作为参考, 表示每秒请求数
对post请求及put请求需要使用 -p参数(post) -u参数(put)
post请求说明(以windows系统为例)
新建一个文件 eg D:/ab_post_test/data.txt
data.txt内容:
name=chencs&password=666666
执行命令
ab -n 10000 -c 100 -p D:/ab_post_test/data.txt http://localhost:8080/postSubmit
压力测试与网络关系巨大,内网吞吐量往往能达到成千上万,但是外网可能只有几百甚至几十的吞吐量
总的来说,ab是一个简单快捷的压力测试工具,适用于简单场景下的压测。在进行服务器压力测试时,建议使用Jmeter或LoadRunner等专业压力测试工具进行更全面和准确的测试。