ab测试分析记录及命令参数中文翻译

一、ab测试分析记录

输入如下命令时:

ab -n 10 -c 10 http://127.0.0.1/
# -n 总共10次请求# -c 是 concurrency ,模拟10个并发用户,即发起10个并发请求
 
ab -t 10 -c 10 http://127.0.0.1/
# -t 是 timelimit 执行测试的时间,单位是秒# -c 是 concurrency ,模拟10个并发用户,即发起10个并发请求######## 命令说明:# 通过 ab 工具模拟用户浏览器行为,Get请求cnblogs网站并返回参数告诉ab你有没有访问我# ab 的刨坑: 千万别再URL上缺少 http:// ,否者无法发起请求
 结果分析:


root~/># ab -t 10 -c 10 http://127.0.0.1:80/
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://127.0.0.1:80/
Licensed to The Apache Software Foundation, http://www.apache.org/
# # ------   上边的不重要   ------#
Benchmarking 127.0.0.1 (be patient)
Finished 311 requests
# 一共发了 311 个请求

Server Software:        
Server Hostname:        127.0.0.1
Server Port:            80
# 描述你测试 URL 和端口号通常是 80 端口
Document Path:          /
Document Length:        147 bytes# 描述你请求的页面的相关信息,页面大小为 147 字节

#----------# 从这开始是 ab 的重点#Concurrency Level:      10
# 并发请求数量为:10
Time taken for tests:   10.179 seconds# 整个测试耗费 10.179 秒
Complete requests:      311# 完成请求数有311次
Failed requests:        0# 失败请求数量
Non-2xx responses:      311# HTTP Code 不是2xx的
Total transferred:      118907 bytes# 整个测试场景中产生的网络传输总量
HTML transferred:       45717 bytes# 整个测试场景中 HTML 内容传输量
Requests per second:    30.55 [#/sec] (mean)# 每秒的请求平均数,这是重要指标之一
Time per request:       327.299 [ms] (mean)# 每个请求的平均时间,这是重要指标之一
Time per request:       32.730 [ms] (mean, across all concurrent requests)# 服务器处理请求的平均时间,这是重要指标之一
Transfer rate:          11.41 [Kbytes/sec] received# 网络平均转移率

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       16   31  10.0     31      94
Processing:   235  284  55.1    265     655
Waiting:       31  189  82.3    203     655
Total:        266  315  58.7    296     686

Percentage of the requests served within a certain time (ms)
  50%    296
  66%    300
  75%    312
  80%    312
  90%    344
  95%    360
  98%    577
  99%    640
 100%    686 (longest request)

二、一个页面在 1秒 内完成 10 个用户的 10次 并发请求,也就是说我们的命令是:

ab -n 10 -c 10 <Test URL>
# 怎么才能更直观的 1秒 内完成所有请求
# ↓  ↓  ↓  ↓  ↓
# 通过 -s 参数来执行-s 参数解释:我发起测试请求时计算计算,如果你不写这个参数,请求超时时间是30秒我们来完成客户要求我们做的测试:command:# ab -n 10 -c 10 -s 0.001  <Test URL>
# 如果在1秒内能通过测试,就返回正常的测试数据
# 如果不能通过测试,会返回下边的提示:
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 127.0.0.1 (be patient)...apr_pollset_poll: The timeout specified has expired (70007)
# 意思是: apr_pollset_poll(指定的超时已过期)
三、AB测试的命令参数中文翻译


ab参数翻译如下:
-n 即requests,用于指定压力测试/总请求数。
-c 即concurrency,用于指定压力测试的并发数。
-t 即timelimit,测试执行最大秒数,它可以让测试限制在一个固定的总时间以内,默认值为50000。
-s 即timeout,请求最大等待时长,默认30s
-b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p 即postfile,发送POST请求时需要上传的文件,文件格式如"p1=1&p2=2"。使用方法是 -p 123.txt 。 (配合-T)
-u 即putfile,发送PUT请求时需要上传的文件。(配合-T)
-T 即content-type,用于设置Content-Type请求头信息,如 -T "application/x-www-form-urlencoded”,默认值为text/plain。(配合-p)
-v 即verbosity,设置显示信息的详细程度 – 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。
-w 以HTML表格形式打印结果。
-i 使用HEAD请求代替GET请求。
-x 插入字符串作为table标签的属性。
-y 插入字符串作为tr标签的属性。
-z 插入字符串作为td标签的属性。
-C 添加cookie信息,例如:"Apache=1234"。此参数可以重复,用逗号分割。提示:可以借助session实现原理传递 JSESSIONID参数, 实现保持会话的功能,如-C "c1=1234,c2=2,c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8"。
-H 添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。如-P proxy-auth-username:password
-X 指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。
-V 显示版本号并退出。
-k 使用HTTP的KeepAlive特性。
-d 不显示百分比。
-S 不显示预估和警告信息。
-q 超过150个请求后不显示进度
-l 接受可变文档长度(用于动态页面)
-g filename 输出结果信息到gnuplot格式的文件中。
-e filename 输出结果信息到CSV格式的文件中。
-r 指定接收到错误信息时不退出程序。
-m method 方法名
-h 帮助

分享到: