测试之apache batch (简称ab测试)
第一、压力测试相关基础概念
1:吞吐率(Requests per second)
服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
记住:吞吐率是基于并发用户数的。这句话代表了两个含义,1:吞吐率和并发用户数相关;2:不同的并发用户数下,吞吐率一般是不同的。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests
2:并发连接数(The number of concurrent connections)
并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
3:并发用户数(The number of concurrent users,Concurrency Level)
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。
4:用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)
5:服务器平均请求等待时间(Time per request: across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也=用户平均请求等待时间/并发用户数,即
Time per request / Concurrency Level
第二、apachebatch(ab) 测试详解
ab,即Apache Benchmark,只要我们安装了Apache,就能够在Apache的安装目录中找到它。它的居住地址是Apache安装目录/bin/ab.exe
。现在,我们就来看看如何使用ab.exe来进行压力测试。
在使用之前我们先来学习一下ab的用法。首先,我们输入cmd打开DOS窗口,然后将更改当前工作目录为:Apache安装目录/bin/
。然后键入帮助命令ab -help
(或者ab /?
、ab -h
),我们就可以看到如下的用法介绍界面。
通过上面的用法介绍可以得知,ab的使用方法就是输入如下DOS命令:
ab [可选的参数选项] 需要进行压力测试的url
此外,我们再根据上面的用法介绍界面来详细了解每个参数选项的作用。
-
-n
- 即requests,用于指定压力测试总共的执行次数。 -c
- 即concurrency,用于指定压力测试的并发数。 -t
- 即timelimit,等待响应的最大时间(单位:秒)。 -b
- 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。 -p
-
即postfile,发送POST请求时需要上传的文件,此外还必须设置
-T
参数。 -u
-
即putfile,发送PUT请求时需要上传的文件,此外还必须设置
-T
参数。 -T
-
即content-type,用于设置Content-Type请求头信息,例如:
application/x-www-form-urlencoded
,默认值为text/plain
。 -v
- 即verbosity,指定打印帮助信息的冗余级别。 -w
- 以HTML表格形式打印结果。 -i
- 使用HEAD请求代替GET请求。 -x
- 插入字符串作为table标签的属性。 -y
- 插入字符串作为tr标签的属性。 -z
- 插入字符串作为td标签的属性。 -C
- 添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。 -H
- 添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。 -A
- 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。 -P
- 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。 -X
- 指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。 -V
- 打印版本号并退出。 -k
- 使用HTTP的KeepAlive特性。 -k
- 使用HTTP的KeepAlive特性。 -d
- 不显示百分比。 -S
- 不显示预估和警告信息。 -g
- 输出结果信息到gnuplot格式的文件中。 -e
- 输出结果信息到CSV格式的文件中。 -r
- 指定接收到错误信息时不退出程序。 -h
-
显示用法信息,其实就是
ab -help
。
第三、apachebatch(ab)测试实例
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。