ab压力测试
2019-10-03 本文已影响0人
Suncy
ab压力测试
理解:
ab是apache自带的压力测试工具,是apache bench命令的缩写;
作用:
不仅可以对apache服务器进行网站访问压力测试,也可以对其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等
原理:
ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力;
ab命令对发出负载的计算机要求很低,它不会占用很高CPU,亦不会占用很多内存。但会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。
下载:
linux:yum install httpd
检查是否安装成功:ab -V
windows :http://httpd.apache.org/download.cgi
测试示例:
image.png以下为脚本内容:
#!/bin/bash
while(true)
do
echo $(date) >> test/getInfo.txt
abs -n 200 -c 40 -T 'application/x-www-form-urlencoded' https://zovee.cn:12321/v2/user/getInfo >> test/getInfo.txt &
echo $(date) >> test/userRegister.txt
abs -n 200 -c 40 -p 'register.txt' -T 'application/x-www-form-urlencoded' https://zovee.cn:12321/v2/user/register >> test/userRegister.txt &
echo $(date) >> test/getGatewayList.txt
abs -n 200 -c 40 -T 'application/x-www-form-urlencoded' https://zovee.cn:12321/v2/gateway/getGatewayList >> test/getGatewayList.txt &
echo $(date) >> test/getMessageList.txt
abs -n 200 -c 40 -p 'mac.txt' -T 'application/x-www-form-urlencoded' https://zovee.cn:12321/v2/gateway/getMessageList >> test/getMessageList.txt &
echo $(date) >> test/getToken.txt
abs -n 200 -c 40 -p 'token.txt' -T 'application/x-www-form-urlencoded' https://zovee.cn:12321/v2/oauth/token >> test/getToken.txt
done
若http协议,使用ab,若https安全协议使用abs
-n: 请求总数
-c :并发总数
-T 'application/x-www-form-urlencoded' :post 请求格式
-p 'mac.txt':请求参数,写在一个文件中
test/userRegister.txt:将测试结果写入指定文件中