1.什么是ab测试
ab,即Apache Benchmark,是一种用于测试Apache超文本传输协议(HTTP)服务器的工具。
ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
ab命令对发出负载的计算机要求很低,既不会占用很高CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也须注意,否则一次上太多的负载,可能造成目标服务器因资源耗完,严重时甚至导致死机。
2.安装方法:
Ubuntu上安装:sudo apt install apache2-utils
centos上安装:yum -y install httpd-tools
3.使用方法
例:ab -n 100 -c 10 -C "username=ss11; sessionid=2rihux33bhhebmd18owr4n48en8mhldi; user_token=admin-token; user_id=151" -P photo.txt https://172.32.50.10/ailab/v1/face/register/
其中-n:总请求数,-c:每秒并发数,-C:cookie(用于需要用户身份的请求),-P:要上传的文件,文件里存放的接口需要的参数。最后是要测试的接口url(注意:最后要有/)
其中-P后面文件的格式一般为.txt。内容形式大致为:
{"paper_id": 94,"user_id": 16}
当参数为图片,并且为base64编码时,.txt文件内容可以如下设置:
{"img": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCADIAMgDASIAAhEBAxEB/8QAGwAAAQUBAQAAAAAAAAAAAAAABAABAgMFBgf/xAA5EAACAQMCBAQEBAQGAwEAAAABAgADBBESIQUxQVETImGRBjJxgRQjQlIVU4KSM0NiobHwFjTR8f/EABoBAAMBAQ