使用Apache ab工具测试性能

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系统下的安装包,所以用第三方的安装包。点击下图链接:

使用Apache ab工具测试性能_第1张图片

然后点击:

使用Apache ab工具测试性能_第2张图片

选择版本下载:

使用Apache ab工具测试性能_第3张图片

直接解压到具体目录,找到bin目录:

使用Apache ab工具测试性能_第4张图片

在cmd.exe里面运行ab:

使用Apache ab工具测试性能_第5张图片

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": "男"

     }

}

测试结果:

使用Apache ab工具测试性能_第6张图片

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,第一个可以理解为用户平均请求等待时间,第二可以理解为服务器平均请求等待时间

你可能感兴趣的:(使用Apache ab工具测试性能)