一、ab是什么?
ApacheBench 是 Apache 服务器自带的一个web压力测试工具,简称ab。ab本身是一个命令行工具,对发起负载的本机要求很低,根据ab命令可以创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问,因此可以用来测试目标服务器的负载压力或者在开发过程中验证接口在不同并发场景下的运行情况,总体来说ab体量小,使用简单。可提供基本的数据分析接口在不同压力下的表现情况。
二、使用
1.打开一个CMD切换目录到(Apache24\bin),执行命令 ./ab.exe -h,会得到如下帮助:
这里简单释义几个参数,各位使用过程中可灵活探索
-n即requests,用于指定压力测试总共的执行次数
-c即concurrency,用于指定压力测试的并发数
-t即timelimit,等待响应的最大时间(单位:秒)(这里我理解的是一个最长基准线时间,而不是timeout那种相应超过最长时间后即断开连接的限制)
-s是timeout,等待相应的最长时间(单位:秒,默认30秒)
-p即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数
-H添加任意的请求头,例如:“Content-Length: 0”
3.第一次GET请求测试
发起测试命令,这里有一个注意点
这里需要注意的是Complete requests不能小于Concurrency Level(-n 不能小于 -c),具体原因,留个小疑问各位思考尝试一下(尝试一下会有明确异常提示)。
./ab.exe -n 10 -c 2 “http://www.apache.org/”
1
4.第一次POST请求测试
发起测试命令,post请求稍微有些不同,需要文件内定义请求体,parm.txt,后边跟格式,-H是header参数
./ab.exe -n 10 -c 2 -p F:/Apache24/htdocs/parm.txt -T “application/json” -H “PK:9937” -r “*(此处是地址)”
1
三、测试结果分析
$ ./ab.exe -n 10 -c 2