美文网首页我爱编程
使用Apache ab工具测试性能

使用Apache ab工具测试性能

作者: zlup | 来源:发表于2017-07-13 16:05 被阅读0次

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

    相关文章

      网友评论

        本文标题:使用Apache ab工具测试性能

        本文链接:https://www.haomeiwen.com/subject/uymwhxtx.html