Apache ab: HTTP server benchmarking tool
ab是Apache提供的一款小巧的压力测试工具,用来测试服务能力很方便。
1. ab官方网站:
ab - Apache HTTP server benchmarking tool - Apache HTTP Server
2. 安装:
ab工具放在Apache HTTP Server安装包的bin目录下,所以要先安装Apache HTTP Server(以Windows系统为例)。
到Apache HTTP Server官网下载页面(点击链接),目前最新的版本不提供Windows系统下的安装包,所以用第三方的安装包。点击下图链接:
然后点击:
选择版本下载:
直接解压到具体目录,找到bin目录:
在cmd.exe里面运行ab:
3. 使用:
ab [ -A auth-username:password ] [ -b windowsize ] [ -B local-address ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -f protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -l ] [ -m HTTP-method ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -r ] [ -s timeout ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -u PUT-file ] [ -v verbosity] [ -V ] [ -w ] [ -x -attributes ] [ -X proxy[:port] ] [ -y -attributes ] [ -z-attributes ] [ -Z ciphersuite ] [http[s]://]hostname[:port]/path
常用参数说明:
-n 请求的总数,默认是1次。
-c 并发数,同一时间请求数。
-p 如果后面接的是文件,表示POST请求,文件中包含请求数据,根据数据格式,设置-T参数。
-T 设置请求头中的Content-type(针对POST/PUT),比如:application/x-www-form-urlencoded。默认是text/plain。
-w 将测试结果打印到HTML表格中。
4. 实例:
使用ab测试POST接口,参数类型为JSON,命令行如下:
ab -c 50 -n 50 -p postdata.json -T application/json 192.168.13.34:9001/v1/js-executor/js
postdata.json(推荐使用IDE或者Nodepad++来创建,否则有解析失败的情况):
{
"className": "User",
"methodName": "addUser",
"paramSet": {
"user_01": {
"a1": ["张yi",1471337924226],
"a2": "马山"
},
"user_02": "21",
"user_03": "男"
}
}
测试结果:
5. 测试结果指标说明(常用的):
Concurrency Level 并发数多少,等于-c后面的数值
Time taken for tests 测试总耗时
Complete requests 成功收到返回的数目
Failed requests 请求失败数目,可能因为网络连接,异常,请求数据长度等等
Non-2xx responses 表示返回的HTTP status code不是2xx的数目(比如404,401,500...),如果都是2xx,这个指标不显示在结果里面
Requests per second 每秒请求数,等于总请求数/测试总耗时
Time per request 每一个请求平均花费时间。第一个Time per request等于concurrency * timetaken * 1000 / done,第二个Time per request(mean, across all concurrency requests)等于timetaken * 1000 / done,第一个可以理解为用户平均请求等待时间,第二可以理解为服务器平均请求等待时间
网友评论