ab WEB测试工具

Apache Benchmark(ab)工具能够通过模拟对特定的url的任意数量请求对web服务器进行负载测试!

ab工具提供以下信息:

传输数据的总大小(以字节为单位)
web服务器在模拟流量下每秒可以支持的请求总数
完成一个请求需要花费的最长时间(毫秒为单位)
完成一个请求需要花费的最短时间(毫秒为单位)

使用ab工具还能可以运行很多不同的负载模拟:

对web文档的模拟请求
指定时间内的请求
打开 keep-alive时的请求(称持久连接、连接重用,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。)

结果详解:

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.example.com (be patient).....done

        <--服务器信息-->
Server Software:        nginx/1.10.3 //web服务器运行的软件
Server Hostname:        www.example.com //主机名
Server Port:            443 //服务器监听的端口
SSL/TLS Protocol:       TLSv1/SSLv3,ECDHE-RSA-AES256-SHA384,4096,256 //协议

        <--文档信息-->
Document Path:          / //请求的文档路径
Document Length:        99050 bytes //响应内容的字节数总和(包含html,图片,css,js,任何内容)
        <--连接信息-->
Concurrency Level:      1 //进行的并发请求总数
Time taken for tests:   0.089 seconds //运行花费的总时间(秒)
Complete requests:      1 //模拟的请求总数中已完成的请求总数
Failed requests:        0 //失败的请求总数
Write errors:           0 //使用写入数据中遇到的错误总数
Total transferred:      99397 bytes //整个模拟响应中传输的总数据,大小包括标头数据
HTML transferred:       99050 bytes //整个模拟传输的内容正文大小
Requests per second:    11.20 [#/sec] (mean) //每秒支持的请求总数
Time per request:       89.292 [ms] (mean) //满足一个请求需要花费的总时间
Time per request:       89.292 [ms] (mean, across all concurrent requests) //满足所有并发中的一个请求所需要花费的总时间
Transfer rate:          1087.08 [Kbytes/sec] received //每秒收到的字节总数

//这些字段告诉我们请求过程状态所需要的时间
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       19   19   0.0     19      19
Processing:    71   71   0.0     71      71
Waiting:       67   67   0.0     67      67
Total:         89   89   0.0     89      89

ab命令(标记)参数详解

-A  :   用于提供服务器身份验证信息,用户名和密码用:分割.发送的字符串采用base64编码
-c      (并发数)一次模拟请求数,默认情况下设置为1.数值不能大于n的值
-C  cookie-name=value       可重复的标记,包含cookie信息
-d                          不显示百分表
-e                          要创建的.csv文件的路径,这个文件包含的测试的结果,结果分为两列,百分比 和 毫秒,建议使用gnuplot命令行的交互式绘图工具
-g                          要创建的gnuplot或者tsv文件的路径.输出将保存到该文件中
-h                          显示ab标记的选项列表
-H  custom-header           采用字段值对形式发送有效标记头和请求(自定义头信息)
-i                          执行head请求,而不是默认的get请求
-k                          启用keep-Alive功能,允许通过一个http会话满足多个请求,默认这个功能为禁用状态
-n  requests                要执行的请求次数
-p  POST-file               包含用于发送post请求的数据文件路径.内容应该包含由 & 分割的键=值对
-P  username:password       身份认证的字符串,采用base64编码.
-q                          执行多余100个请求时隐藏进度输出
-s                          使用https协议
-S                          不显示中位数和标准偏差值
-t  timelimit               超时时间,默认时间无限制
-v  verbosity-level         数值为2以上打印警告信息,为3输出http响应码,4以上输出标记头信息
-V                          版本号
-w                          采用表格打印结果
-x        表示html属性的字符串,使用-w时将放置在标记中
-X  proxy[:port]            代理服务器端口
-y           表示html属性的字符串,使用-w时将放置在标记中
-z           表示html属性的字符串,使用-w时将放置在
标记中

注意事项:

如果你不请求该域名中的特定文档,那域名最后边的反斜杠是必要的
如果被某些web服务器阻止,可能收不到任何数据,可以使用-H,来提供请求中的标识头信息
    ab -n 100 -c 5 -H "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" http://www.example.com

你可能感兴趣的:(测试工具,apache,测试工具,web服务器,web)