1. ab简介

ab全称Apache Bench,是apache附带的一个小工具,它可以同时模拟多个并发请求,测试apache等Web服务器的最大负载压力。
本文通过一个简单的示例,介绍了使用ab进行web页面性能测试、查看结果方法及运行参数详解。
运行环境为Windows 10系统。

2. ab下载

2.1 Windows系统

对于windows系统,可访问页面https://www.apachelounge.com/download/下载相应版本的zip包,我们下载的版本是:httpd-2.4.29-Win64-VC15.zip

也可以下载我提取出来的ab.exe,解压即可使用:https://files.cnblogs.com/files/lovesoo/ab.zip

2.2 linux系统

使用如下命令安装Apache
  1. yum install httpd

3. ab运行

使用cmd/shell进入到Apache24\bin目录下,运行ab即可
 

4. 使用ab进行性能测试

 
最常用两种运行命令如下:
  1. ab -n -c http://www.cnblogs.com
  2. # -n 总共10次请求,-c 模拟10个并发用户,即10个并发请求博客园首页,共请求10次
  3.  
  4. ab -t -c http://www.cnblogs.com
  5. # -t 是测试执行时间,-c 模拟10个并发用户,即10个并发请求博客园首页,持续10秒

5. 测试结果

6. 结果解析

  1. Server Software:
  2. Server Hostname: www.cnblogs.com
  3. Server Port:
  4.  
  5. Document Path: /
  6. Document Length: bytes #HTTP响应数据的正文长度
  7.  
  8. Concurrency Level: #并发数
  9. Time taken for tests: 10.183 seconds #测试执行时间
  10. Complete requests: #完成请求数
  11. Failed requests: #失败请求数
  12. Non-2xx responses:
  13. Total transferred: bytes #网络总传输量
  14. HTML transferred: bytes #HTML内容传输量
  15. Requests per second: 16.60 [#/sec] (mean) #每秒请求数
  16. Time per request: 602.545 [ms] (mean) #用户平均请求等待时间,计算公式:测试执行总时间/(总请求数/并发用户数)
  17. Time per request: 60.254 [ms] (mean, across all concurrent requests) #服务器平均请求等待时间,计算公式:测试执行总时间/总请求数
  18. Transfer rate: 6.27 [Kbytes/sec] received #平均传输速率
  19.  
  20. Connection Times (ms) #响应时间小、中、大值
  21. min mean[+/-sd] median max
  22. Connect: 325.5
  23. Processing: 928.1
  24. Waiting: 922.1
  25. Total: 971.5
  26.  
  27. Percentage of the requests served within a certain time (ms) #一定时间内请求完成的百分比,如50%用户完成的响应时间在68ms内, %用户完成的响应时间在73ms内,%用户在3075ms内完成
  28. %
  29. %
  30. %
  31. %
  32. %
  33. %
  34. %
  35. %
  36. % (longest request)

7. ab运行参数详解

官方帮助文档如下:
  1. Usage: ab [options] [http://]hostname[:port]/path
  2. Options are:
  3. -n requests Number of requests to perform
  4. -c concurrency Number of multiple requests to make at a time
  5. -t timelimit Seconds to max. to spend on benchmarking
  6. This implies -n
  7. -s timeout Seconds to max. wait for each response
  8. Default is seconds
  9. -b windowsize Size of TCP send/receive buffer, in bytes
  10. -B address Address to bind to when making outgoing connections
  11. -p postfile File containing data to POST. Remember also to set -T
  12. -u putfile File containing data to PUT. Remember also to set -T
  13. -T content-type Content-type header to use for POST/PUT data, eg.
  14. 'application/x-www-form-urlencoded'
  15. Default is 'text/plain'
  16. -v verbosity How much troubleshooting info to print
  17. -w Print out results in HTML tables
  18. -i Use HEAD instead of GET
  19. -x attributes String to insert as table attributes
  20. -y attributes String to insert as tr attributes
  21. -z attributes String to insert as td or th attributes
  22. -C attribute Add cookie, eg. 'Apache=1234'. (repeatable)
  23. -H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
  24. Inserted after all normal header lines. (repeatable)
  25. -A attribute Add Basic WWW Authentication, the attributes
  26. are a colon separated username and password.
  27. -P attribute Add Basic Proxy Authentication, the attributes
  28. are a colon separated username and password.
  29. -X proxy:port Proxyserver and port number to use
  30. -V Print version number and exit
  31. -k Use HTTP KeepAlive feature
  32. -d Do not show percentiles served table.
  33. -S Do not show confidence estimators and warnings.
  34. -q Do not show progress when doing more than requests
  35. -l Accept variable document length (use this for dynamic pages)
  36. -g filename Output collected data to gnuplot format file.
  37. -e filename Output CSV file with percentages served
  38. -r Don't exit on socket receive errors.
  39. -m method Method name
  40. -h Display usage information (this message)
 
中文翻译如下:
  1. -n requests,用于指定压力测试/总请求数。
  2. -c concurrency,用于指定压力测试的并发数。
  3. -t timelimit,测试执行最大秒数,它可以让测试限制在一个固定的总时间以内,默认值为50000
  4. -s timeout,请求最大等待时长,默认30s
  5. -b windowsizeTCP发送/接收的缓冲大小(单位:字节)。
  6. -p postfile,发送POST请求时需要上传的文件,文件格式如"p1=1&p2=2"。使用方法是 -p .txt (配合-T
  7. -u putfile,发送PUT请求时需要上传的文件。(配合-T
  8. -T content-type,用于设置Content-Type请求头信息,如 -T "application/x-www-form-urlencoded”,默认值为text/plain。(配合-p)
  9. -v 即verbosity,设置显示信息的详细程度 – 4或更大值会显示头信息, 3或更大值可以显示响应代码(, 200等), 2或更大值可以显示警告和其他信息。
  10. -w 以HTML表格形式打印结果。
  11. -i 使用HEAD请求代替GET请求。
  12. -x 插入字符串作为table标签的属性。
  13. -y 插入字符串作为tr标签的属性。
  14. -z 插入字符串作为td标签的属性。
  15. -C 添加cookie信息,例如:"Apache=1234"。此参数可以重复,用逗号分割。提示:可以借助session实现原理传递 JSESSIONID参数, 实现保持会话的功能,如-C "c1=1234,c2=2,c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8"。
  16. -H 添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
  17. -A 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
  18. -P 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。如-P proxy-auth-username:password
  19. -X 指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。
  20. -V 显示版本号并退出。
  21. -k 使用HTTP的KeepAlive特性。
  22. -d 不显示百分比。
  23. -S 不显示预估和警告信息。
  24. -q 超过150个请求后不显示进度
  25. -l 接受可变文档长度(用于动态页面)
  26. -g filename 输出结果信息到gnuplot格式的文件中。
  27. -e filename 输出结果信息到CSV格式的文件中。
  28. -r 指定接收到错误信息时不退出程序。
  29. -m method 方法名
  30. -h 帮助

Web性能测试工具之ab入门篇的更多相关文章

  1. pylot是一款开源的web性能测试工具

    pylot是一款开源的web性能测试工具,http://www.pylot.org/ 参考文档:http://www.pylot.org/gettingstarted.html很容易上手 使用分为以下 ...

  2. 【web性能】web性能测试工具推荐

    WEB性能测试工具主要分为三种,一种是测试页面资源加载速度的,一种是测试页面加载完毕后页面呈现.JS操作速度的,还有一种是总体上对页面进行评价分析,下面分别对这些工具进行介绍,如果谁有更好的工具也请一 ...

  3. Web性能测试工具:http_load安装&使用简介

    除了siege,在Web性能测试工具中,http_load也是比较热门和常见的一款,有时因为种种原因,只能使用现成的工具,所以多了解和掌握一种Web性能测试工具是很有必要的. 1.下载安装包 略过 2 ...

  4. Web性能测试工具:Siege安装&使用简介

    在Web性能测试工具中,siege是比较热门和常见的,它有安装简单,使用简单,测试报告详细的特点. 并且可以在文本中预定义一系列待测试url模拟,并可设定一定并发量下持续指定时间or测试进行测试. 比 ...

  5. Web性能测试工具推荐

    WEB性能测试工具主要分为三种: 一种是测试页面资源加载速度的: 一种是测试页面加载完毕后页面呈现.JS操作速度的: 一种是总体上对页面进行评价分析. ~~~如果谁有更好的工具也请一起分享下   1. ...

  6. Web性能测试工具JMeter

    做Web方面的黑盒测试,也就是功能测试,基本不需要什么测试工具,都是直接打开浏览器访问,点一点界面就行. 现在流行的移动互联网应用,客户端和服务端的开发是分离的,两者开发进度肯定不一样,可能存在服务端 ...

  7. 【转】开源性能测试工具 - Apache ab 介绍

    版权声明:本文可以被转载,但是在未经本人许可前,不得用于任何商业用途或其他以盈利为目的的用途.本人保留对本文的一切权利.如需转载,请在转载是保留此版权声明,并保证本文的完整性.也请转贴者理解创作的辛劳 ...

  8. web性能测试工具——http_load

    http_load是一款基于Linux平台的web服务器性能测试工具,用于测试web服务器的吞吐量与负载,web页面的性能. http_load是基于linux.unix平台的一种性能测工具 它以并行 ...

  9. 2015第22周一Web性能测试工具及IE扩展区别

    在高性能web测试工具推荐http://www.jb51.net/article/23034.htm中发现了dynaTrace 感觉很不错,不但可以检测资源加载瀑布图,而且还能监控页面呈现时间,CPU ...

随机推荐

  1. Spring第八篇【XML、注解实现事务控制】

    前言 本博文主要讲解Spring的事务控制,如何使用Spring来对程序进行事务控制-. 一般地,我们事务控制都是在service层做的..为什么是在service层而不是在dao层呢??有没有这样的 ...

  2. Java Classloader机制解析(转)

    做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结.因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspo ...

  3. oracle 删除外键约束 禁用约束 启用约束

    oracle 删除外键约束 禁用约束 启用约束 执行以下sql生成的语句即可 删除所有外键约束 Sql代码  select 'alter table '||table_name||' drop con ...

  4. [LeetCode] 344 Reverse String && 541 Reverse String II

    原题地址: 344 Reverse String: https://leetcode.com/problems/reverse-string/description/ 541 Reverse Stri ...

  5. 最详细的PHP flush()与ob_flush()的区别详解

    buffer ---- flush()buffer是一个内存地址空间,Linux系统默认大小一般为4096(1kb),即一个内存页.主要用于存储速度不同步的设备或者优先级不同的 设备之间传办理数据的区 ...

  6. BZOJ1207_打鼹鼠_KEY

    [HNOI2004]打鼹鼠 Time Limit: 10 Sec Memory Limit: 162 MB Description 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地 ...

  7. java equals()方法

    java基础学习总结--equals方法 一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class Te ...

  8. sqoop使用的问题

    找不到表 17/05/02 18:15:47 ERROR tool.ImportTool: Imported Failed: There is no column found in the targe ...

  9. 【重点突破】——two.js模拟绘制太阳月亮地球转动

    一.引言 自学two.js第三方绘图工具库,认识到这是一个非常强大的类似转换器的工具,提供一套固定的接口,可用在各种技术下,包括:Canvas.Svg.WebGL,极大的简化了应用的开发.这里,我使用 ...

  10. hdu1524博弈SG

    A Chess Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tot ...