使用Ab(ApacheBench) 进行Web性能压力测试
一、Ab(ApacheBench) 简介
Ab(ApacheBench) 测试工具是用于对 Apache 超文本传输协议 (HTTP) 服务器进行基准测试的工具。具有对发起负载的本机要求很低,简单易上手的特点。
二、安装
sudo apt install apache2-utils
安装成功显示
三、使用方法
3.1 语法
ab [ -A auth-username:password ] [ -b windowsize ] [ -B local-address ] [ -c concurrency ]
[ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -E client-certificate file ] [ -f
protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -l ] [ -m HTTPmethod ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -r ]
[ -s timeout ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -u PUT-file ] [ -v verbosity]
[ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z
<td>-attributes ] [ -Z ciphersuite ] [http[s]://]hostname[:port]/path
3.2 选项
-A auth-username:password 向服务器提供 BASIC 身份验证凭据。用户名和密码由单个分隔并通过:base64 编码发送。无论服务器是否需要,都会发送该字符串(即,已发送需要的 401 身份验证)。
-b windowsize TCP 发送/接收缓冲区的大小,以字节为单位。
-B local-address 进行传出连接时要绑定到的地址。
-c concurrency 一次执行的多个请求的数量。默认为一次一个请求。
-C cookie-name=value Cookie:在请求中添加一行。参数通常采用对的形式 。该字段是可重复的。name=value
-d 不显示“XX [ms] 表内提供的百分比”。(遗留支持)。
-e csv-file 编写一个逗号分隔值 (CSV) 文件,其中包含为每个百分比(从 1% 到 100%)提供服务该百分比请求所花费的时间(以毫秒为单位)。这通常比“gnuplot”文件更有用;因为结果已经“装箱”了。
-E client-certificate-file 连接到 SSL 网站时,使用提供的 PEM 格式的客户端证书向服务器进行身份验证。该文件应包含客户端证书、中间证书和私钥。在 2.4.36 及更高版本中可用。
-f protocol 指定 SSL/TLS 协议(SSL2、SSL3、TLS1、TLS1.1、TLS1.2 或 ALL)。TLS1.1 和 TLS1.2 支持在 2.4.4 及更高版本中可用。
-g gnuplot-file 将所有测量值写为“gnuplot”或 TSV(制表符分隔值)文件。这个文件可以很容易地导入到Gnuplot、IDL、Mathematica、Igor 甚至 Excel 等包中。标签位于文件的第一行。
-h 显示使用信息。
-H custom-header 将额外的标头附加到请求中。参数通常采用有效标题行的形式,包含以冒号分隔的字段值对(即,"Accept-Encoding: zip/zop;8bit")。
-i 做HEAD请求而不是GET.3.3 输出
-k 启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求。默认为没有 KeepAlive。
-l 如果响应的长度不是恒定的,则不要报告错误。这对动态页面很有用。在 2.4.7 及更高版本中可用。
-m HTTP-method 请求的自定义 HTTP 方法。在 2.4.10 及更高版本中可用。
-n requests 为基准测试会话执行的请求数。默认是只执行一个请求,这通常会导致不具代表性的基准测试结果。
-p POST-file 包含要 POST 的数据的文件。记得还要设置-T.
-P proxy-auth-username:password 向代理途中提供 BASIC 身份验证凭据。用户名和密码由单个分隔并通过:base64 编码发送。无论代理是否需要,都会发送字符串(即,已经发送了需要的 407 代理身份验证)。
-q 当处理超过 150 个请求时,每 10% 或 100 个左右的请求ab输出一个进度计数stderr。该 -q标志将抑制这些消息。
-r 不要在套接字接收错误时退出。
-s timeout 套接字超时前等待的最大秒数。默认值为 30 秒。在 2.4.4 及更高版本中可用。
-S 不显示中值和标准差值,当平均值和中值相差超过标准差的一倍或两倍时,也不显示警告/错误消息。并默认为min/avg/max 值。(遗留支持)。
-t timelimit 用于基准测试的最大秒数。这意味着 -n 50000内部。使用它在固定的总时间内对服务器进行基准测试。默认情况下没有时间限制。
-T content-type 用于 POST/PUT 数据的内容类型标头,例如。 application/x-www-form-urlencoded. 默认为text/plain。
-u PUT-file 包含要 PUT 的数据的文件。记得还要设置-T.
-v verbosity 设置详细级别 -4及以上打印标题信息,3以上打印响应代码(404、200 等), 2以上打印警告和信息。
-V 显示版本号并退出。