性能测试工具AB的使用

性能测试工具AB的使用
Ab的参数

  -n requests    #执行的请求数,即一共发起多少请求。
  -c concurrency    #请求并发数。
  -t timelimit    #测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
  -s timeout    #指定每个请求的超时时间,默认是30秒。
  -b windowsize    #指定tcp窗口的大小,单位是字节。
  -B address    #指定在发起连接时绑定的ip地址是什么。
  -p postfile    #指定要POST的文件,同时要设置-T参数。
  -u putfile    #指定要PUT的文件,同时要设置-T参数。
  -T content-type    #指定使用POST或PUT上传文本时的文本类型,默认是'text/plain'。
  -v verbosity    #设置详细模式等级。
  -w    #将结果输出到html的表中。
  -i    #使用HEAD方式代替GET发起请求。
  -y attributes    #以表格方式输出时,设置html表格tr属性。 
  -z attributes    #以表格方式输出时,设置html表格th或td属性。
  -C attribute    #添加cookie,比如'Apache=1234'。(可重复)
  -H attribute    #为请求追加一个额外的头部,比如'Accept-Encoding: gzip'。(可重复)
  -A attribute    #对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。
  -P attribute    #对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。
  -X proxy:port   #指定代理服务器的IP和端口。
  -V              #打印版本信息。
  -k              #启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。默认时,不启用KeepAlive功能。
  -d              #不显示"percentage served within XX [ms] table"的消息(为以前的版本提供支持)。
  -q              #如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。
  -g filename     #把所有测试结果写入一个'gnuplot'或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行为标题。
  -e filename     #产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比'gnuplot'格式更有用。
  -r              #当收到错误时不要退出。
  -h              #输出帮助信息
  -Z ciphersuite  指定SSL/TLS密码套件
  -f protocol     指定SSL/TLS协议(SSL3, TLS1, TLS1.1, TLS1.2 or ALL)

返回数据解说

F:\Apache24\bin>ab -n100 -c10 http://study.163.com/
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking study.163.com (be patient)…done
Server Software: nginx #被测试服务器软件名称
Server Hostname: study.163.com #服务器主机名
Server Port: 80 #服务器端口
Document Path: / #请求的URL中的根绝对路径
Document Length: 314180 bytes #页面的大小
Concurrency Level: 10 #并发数
Time taken for tests: 5.020 seconds #整个测试耗时
Complete requests: 100 #总共完成的请求数量
Failed requests: 99 #失败数99(可能除了第一次剩下的99次全部错误。网易云课堂应该是对同一ip大量多次快速的访问做了限制)
(Connect: 0, Receive: 0, Length: 99, Exceptions: 0)
Total transferred: 31473840 bytes #测试过程中产生的网络传输总量
HTML transferred: 31411340 bytes #测试过程中产生的HTML传输量
Requests per second: 19.92 [#/sec] (mean) #表示服务器吞吐量,每秒事务数,括号中的 mean 表示这是一个平均值
Time per request: 502.031 [ms] (mean) #表示用户请求的平均响应时间,后面括号中的mean表示这是一个平均值
Time per request: 50.203 [ms] (mean, across all concurrent requests) #表示服务器请求平均处理时间,即实际运行时间的平均值
Transfer rate: 6122.37 [Kbytes/sec] received #表示这些请求在单位时间内从服务器获取的数据长度,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
Connection Times (ms) #min最小值、mean平均值、[+/-sd]方差、median中位数、maxz最大值
min mean[+/-sd] median max
Connect: 20 24 2.6 25 32 #socket链路建立消耗,代表网络状况好
Processing: 260 436 80.5 430 614 #写入缓冲区消耗+链路消耗+服务器消耗
Waiting: 55 81 24.1 75 200 #写入缓冲区消耗+链路消耗+服务器消耗+读取数据消耗
Total: 288 461 80.0 455 636 #单个事务总时间
#网络上消耗的时间的分解,表示这些请求在单位时间内从服务器获取的数据长度
Percentage of the requests served within a certain time (ms)
50% 455
66% 500
75% 534
80% 548
90% 565
95% 581
98% 609
99% 636
100% 636 (longest request)
#整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于455毫秒,60%的用户响应时间小于500毫秒,最大的响应时间小于636 毫秒

你可能感兴趣的:(ab,ab测试)