AB工具的基本使用

一、语法格式

格式:abs.exe [options] [http[s]://]hostname[:port]/path

详细语法格式:abs [ -A auth-username:password ] [-u][ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -s ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [http://]hostname[:port]/path

参数解释:

  -A auth-username:password:向服务器提供基本认证信息。用户名和密码之间由一个":"隔开,并将被以base64编码形式发送。无论服务器是否需要(即是否发送了401认证需求代码),此字符串都会被发送;

  -c concurrency:一次产生的请求数或并发数,默认是一次一个;

   -C cookie-name=value:对请求附加一个"Cookie:"头行。其典型形式是 name=value 的一个参数对。此参数可以重复,用逗号分割;提示:可以借助session实现原理传递 JSESSIONID参数, 实现保持会话的功能,如-C ” c1=1234,c2=2,c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8″ ;

  -d:不显示百分比(为以前的版本提供支持);

   -e csv-file:产生一个逗号分隔(CSV)文件,其中包含了处理每个相应百分比请求(从1%到100%)所需要的相应百分比时间(以微秒为单位)。由于这种格式已经"二进制化",所以比"gnuplot"格式更有用;

   -g gnuplot-file:把所有测试结果写入一个"gnuplot"或者TSV(以Tab分隔)文件。此文件可以方便地导入到 Gnuplot, IDL, Mathematica, Excel中。其中的第一行为标题;

  -h:显示帮助信息;

  -H custom-header :对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值(如:"Accept-Encoding: zip/zop;8bit");

   -i:执行HEAD请求,而不是GET;

  -k:启用KeepAlive功能,即在一个HTTP会话中执行多个请求。默认不启用KeepAlive功能;

  -n requests:在测试会话中所执行的总请求个数。默认仅执行一个请求;

  -p POST-file:发送POST请求时需要上传的文件,此外还必须设置 -T参数。文件格式如“p1=1&p2=2”.使用方法是 -p 111.txt;

   -P proxy-auth-username:password:对一个中转代理提供基本认证信息。用户名和密码由一个":"隔开,并将被以base64编码形式发送。无论服务器是否需要(即是否发送了407代理认证需求代码),此字符串都会被发送;

  -q:如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。此 -q 标记可以屏蔽这些信息;

  -s:用于编译中(ab -h 会告诉你)使用了SSL的受保护的https ,而不是http协议的时候。此功能是实验性的,最好不要用;

  -S:不显示中值和标准偏差值,而且在均值和中值为标准偏差值的1到2倍时,也不显示警告或出错信息。默认时,会显示最小值/均值/最大值等数值。(为以前的版本提供支持);

   -t timelimit :即timelimit,等待响应的最大时间(单位:秒)。内部隐含值是"-n 50000"。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制;

  -T content-type:POST数据时所使用的"Content-type"头信息,如 -T “application/x-www-form-urlencoded” ;

  -v verbosity:设置显示信息的详细程度,4或更大值会显示头信息,3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息;

  -V :显示版本号并退出;

   -w :以HTML表格形式输出结果。默认时,它是白色背景的两列宽度的一张表;

  -x <table>-attributes:设置<table>属性的字符串。此属性被填入<table 这里 >;

   -X proxy[:port] :对请求使用代理服务器;

  -y <tr>-attributes:设置<tr>属性的字符串;

   -z <td>-attributes:设置<td>属性的字符串;

  -u:发送PUT请求时需要上传的文件,此外还必须设置 -T参数

二、基本使用

ab的参数有很多,大部分时候我们使用-n和-c参数就可以进行压测了;(-n:发送请求的总数;-c:并发数;-C:如果接口需要传递cookie可以用key=value的模式进行传递)

举例:abs.exe -n 10 -c 1 https://www.baidu.com/

举例:增加cookie值:abs.exe -n 10 -c 1 -C key = value https://www.baidu.com/

这个表示采用一个并发发送10次数据请求到百度;如下图:

数据说明:

第一部分:

  Server Software: BWS/1.1
  Server Hostname: www.baidu.com   //访问的地址
  Server Port: 443  //端口号
  SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128
  Server Temp Key: ECDH P-256 256 bits
  TLS Server Name: www.baidu.com

第二部分:

  Document Path: /        //测试的页面文档位置
  Document Length: 227 bytes    //文档大小

第三部分:

  Concurrency Level: 1      //请求并发数据
  Time taken for tests: 7.446 seconds    //完成所有请求所消耗的时间
  Complete requests: 10    //完成请求的总量
  Failed requests: 0      //失败的请求数
  Total transferred: 11110 bytes          //整个过程中总的网络传输量
  HTML transferred: 2270 bytes       //整个过程中HTML内容传输量
  Requests per second: 1.34 [#/sec] (mean)       //主要的指标一:相当于LR每秒处理的事务数(tps/qps),后面的mean标识这是一个平均值
  Time per request: 744.608 [ms] (mean)       //主要指标二:相当于LR中的平均事务响应时间,后面mean表示这是一个评均值
  Time per request: 744.608 [ms] (mean, across all concurrent requests)     //这个是每个连接请求服务器平均处理时间
  Transfer rate: 1.46 [Kbytes/sec] received    //平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

第四部分:

  //网络上消耗的时间的分解

  Connection Times (ms)
  min mean[+/-sd] median max
  Connect: 45 451 1104.4 68 3584
  Processing: 14 292 665.8 20 2146
  Waiting: 14 80 138.9 20 427
  Total: 59 744 1761.8 97 5731

  //整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于97 毫秒,60% 的用户响应时间小于175 毫秒,最大的响应时间小于5731 毫秒。由于对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数

  Percentage of the requests served within a certain time (ms)
    50% 97
    66% 175
    75% 488
    80% 563
    90% 5731
    95% 5731
    98% 5731
    99% 5731
    100% 5731 (longest request)

附:参考连接

https://www.cnblogs.com/funsion/p/4017911.html

https://blog.csdn.net/xiaojin21cen/article/details/118188707

https://blog.csdn.net/qq_36763236/article/details/108434088?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-108434088-blog-50853393.pc_relevant_multi_platform_whitelistv3&spm=1001.2101.3001.4242.1&utm_relevant_index=2

posted on 2022-07-29 15:06  随风迎  阅读(561)  评论(0编辑  收藏  举报

导航