1. 命令:
ab [options] url
参数列表
-A <username>:<password> : 用于提供服务器身份验证信息,用户名和密码使用:隔开,发送的字符串采用base64编码
-c <concurrency number> : 一次模拟的请求数(即并发数),默认为1,不能比-n大
-C Cookie-name=value : 可重复的参数,包含cookie信息
-d : 隐藏“percentage served within XX[ms] table”
-e <path>: 要创建的.csv文件路径,该文件包含运行的测试结果
-g : 要创建的gnuplot或tsv文件的路径,基准测试的输出保存在该文件
-h : 显示要用于ab的选项列表
-H custom-header : 采用键值对形式发送有效标头和请求
-i : 执行HEAD请求,而不是默认的GET请求
-k : 启用keep-alive功能,默认关闭。
-n : 要执行的请求总数
-p post-data-file : 包含用于post请求的数据,内容是以&分割的键=值对
-q : 执行多余100个请求时隐藏进度输出
-s : 使用https协议,而非默认的http
-S : 隐藏中位数和标准偏差值
-t timelimit : 基准测试总时间限制,默认无限制
-v verbosity-level : 数值为2及以上时打印警告和信息,为3打印http响应码,4及以上打印标头信息
-V : 显示ab版本号
-w : 采用html表格打印结果
2. 结果样式:
/********************服务器信息********************/
Server Software: Apache/2.4.23
Server Hostname: w.trunk.cn
Server Port: 80
/********************文档信息********************/
Document Path: /index.php/V30/Zk/showZkArticleByType/thinktank_id/311/type/104
Document Length: 177486 bytes
/********************连接信息********************/
Concurrency Level: 1
Time taken for tests: 1.293 seconds
Complete requests: 1
Failed requests: 0
Total transferred: 177991 bytes
HTML transferred: 177486 bytes
Requests per second: 0.77 [#/sec] (mean)
Time per request: 1293.006 [ms] (mean)
Time per request: 1293.006 [ms] (mean, across all concurrent requests)
Transfer rate: 134.43 [Kbytes/sec] received
/********************连接指标细目分类********************/
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1293 1293 0.0 1293 1293
Waiting: 1284 1284 0.0 1284 1284
Total: 1293 1293 0.0 1293 1293
1.服务器信息
2.文档信息
Document Lenth包含所有html、图像、css、js以及响应中任何内容的字节数总和
3.连接信息
字段 | 意义 |
---|---|
Concurrency Leve | 并发数 |
Time taken for tests | 运行总时间 |
Complete requests | ab请求总数中已完成的请求数 |
Failed requests | ab请求总数中失败的请求数 |
Total transferred | 所有请求的响应传输的总数据,包括标头数据 |
HTML transferred | 所有请求内容正文的总大小 |
Requests per second | 每秒支持的请求总数 |
Time per request | 满足一个请求需要花费的总时间 |
Time per request | 满足所有并发请求中一个请求需要花费的总时间 |
Transfer rate | 每秒收到的字节总数 |
4.连接指标细目分类
该分类数据中最常用就是Total字段的数据,从min和max列可知道响应一个请求所需花费的最长时间和最短时间。
3. 举例
1. ab -n 100 -c 10 www.ex.cn // 同时对web服务器进行10个并发请求,直到进行到100个请求为止
2. ab -c 10 -t 20 www.ex.cn // 10个用户在20秒内访问网站