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

然后点击:

选择版本下载:

直接解压到具体目录,找到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,第一个可以理解为用户平均请求等待时间,第二可以理解为服务器平均请求等待时间

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下,才能真正体现出软件、硬件等...
    mode1943阅读 1,584评论 1 2
  • 下载ab.exe文件 在CMD中打开这个exe文件。 输入命令行: 也可以不需要-A后面的。 ab -A 186...
    傀儡师77阅读 2,650评论 1 4
  • 基本使用 ab就是Apache Benchmark的缩写,顾名思义它是Apache组织开发的一款web压力测试工具...
    水车阅读 9,565评论 0 5
  • 人总是会犯同一种错误,虽然勇于认错,却屡教不改,然后慢慢习惯。我是这种人,你是这种人,其实大家都是这种人。 现实生...
    阿羊ai阅读 2,046评论 0 2