新闻资讯
web压力测试工具(小而精)
1.APACHE ab
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。
ab 不像 LR 那么强大,但是它足够轻便,如果只是在开发过程中想检查一下某个模块的响应情况,或者做一些场景比较简单的测试,ab 还是一个不错的选择。
1.1. 参数说明
-n requests
在测试会话中所执行的请求个数。默认仅执行一个请求,此时其结果不具有意义。
-c concurrency
一次产生的请求个数。默认是一次一个。
-t timelimit
测试所进行的最大秒数。内部隐含值是"-n 50000"。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p POST-file
包含了POST数据的文件。
-T content-type
POST数据时所使用的"Content-type"头信息。
-v verbosity
设置显示信息的详细程度,4或更大值会显示头信息,3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。
-w
以HTML表格形式输出结果。默认时,它是白色背景的两列宽度的一张表。
-i
执行HEAD请求,而不是GET 。
-x <table>-attributes
设置<table>属性的字符串。此属性被填入<table 这里 > 。
-y <tr>-attributes
设置<tr>属性的字符串。
-z <td>-attributes
设置<td>属性的字符串。
-C cookie-name=value
对请求附加一个"Cookie:"头行。其典型形式是 name=value 的一个参数对。此参数可以重复。
-H custom-header
对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值(如:"Accept-Encoding: zip/zop;8bit")。
-A auth-username:password
向服务器提供基本认证信息。用户名和密码之间由一个":"隔开,并将被以base64编码形式发送。无论服务器是否需要(即是否发送了401认证需求代码),此字符串都会被发送。
-P proxy-auth-username:password
对一个中转代理提供基本认证信息。用户名和密码由一个":"隔开,并将被以base64编码形式发送。无论服务器是否需要(即是否发送了407代理认证需求代码),此字符串都会被发送。
-X proxy[:port]
对请求使用代理服务器。
-V
显示版本号并退出。
-k
启用KeepAlive功能,即在一个HTTP会话中执行多个请求。默认不启用KeepAlive功能。
-d
不显示"percentage served within XX [ms] table"消息(为以前的版本提供支持)。
-S
不显示中值和标准偏差值,而且在均值和中值为标准偏差值的1到2倍时,也不显示警告或出错信息。默认时,会显示最小值/均值/最大值等数值。(为以前的版本提供支持)
-g gnuplot-file
把所有测试结果写入一个"gnuplot"或者TSV(以Tab分隔)文件。此文件可以方便地导入到 Gnuplot, IDL, Mathematica, Excel中。其中的第一行为标题。
-e csv-file
产生一个逗号分隔(CSV)文件,其中包含了处理每个相应百分比请求(从1%到100%)所需要的相应百分比时间(以微秒为单位)。由于这种格式已经"二进制化",所以比"gnuplot"格式更有用。
-h
显示使用方法的帮助信息。
1.2. 举例
复制代码
ab -c 10 -n 10 -t 30 http://www.google.com/
输出样例:
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.google.com (be patient)
Finished 779 requests
Server Software: gws
Server Hostname: www.google.com
//服务器主机名
ServerPort: 80
//服务器端口
Document Path: /
//测试的页面文档
Document Length: 458 bytes
//文档大小
Concurrency Level: 10
//并发数
Time taken for tests: 30.87239 seconds
//整个测试持续的时间
Complete requests: 779
//完成的请求数量
Failed requests: 0
//失败的请求数量
Write errors: 0
Non-2xx responses: 779
Total transferred: 1004131 bytes
//整个场景中的网络传输量
HTML transferred: 356782 bytes
//整个场景中的HTML内容传输量
Requests per second: 25.89 [#/sec] (mean)
//大家最关心的指标之一,相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值
Time per request: 386.229 [ms] (mean)
//大家最关心的指标之二,相当于 LR 中的 平均事务响应时间 ,后面括号中的 mean 表示这是一个平均值
Time per request: 38.623 [ms] (mean, across all concurrent requests)
//每个请求实际运行时间的平均值
Transfer rate: 32.57 [Kbytes/sec] received
//平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
Connection Times (ms)
min mean[+/-sd] median max
Connect: 36 167 100.1 132 735
Processing: 62 215 143.6 171 910
Waiting: 61 203 117.4 167 909
Total: 98 382 175.8 344 1243
//网络上消耗的时间的分解,各项数据的具体算法还不是很清楚
/*下面的内容为整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中 50% 的用户响应时间小于 3064 毫秒,60 % 的用户响应时间小于 3094 毫秒,最大的响应时间小于 3184 毫秒*/
Percentage of the requests served within a certain time (ms)
50% 344
66% 395
75% 451
80% 520
90% 626
95% 716
98% 931
99% 977
100% 1243 (longest request)
2.webbench
webbench是有名的网站压力测试工具,它是由Lionbridge公司开发。
Webbech 能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webBech的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数 和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进行测试的能力。还有就是 他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。
2.1. 参数说明
-f –force
不等服务器回复
-r –reload
发送重新load请求,等同于Pragma:no-cache.
-t –time
测试所进行的最大秒数。默认30。
-p –proxy
使用代理服务器
-c --clients
一次产生的请求个数。默认是1。
-9 --http09
使用http/0.9协议
-1 --http10
使用http/1.0协议
-2 –http11
使用http/1.1协议
--get
使用get请求方法
--head
使用head请求方法
--options
使用options请求方法
--trace
使用trace请求方法
-? –h –help
显示帮助信息
-V –version
显示程序的版本信息
2.2. 例子
webbench -c 100 -t 30 http://www.google.com/
输出样例:
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://www.google.com/
100 clients, running 30 sec.
Speed=4028 pages/min, 86577 bytes/sec.
Requests: 2014 susceed, 0 failed.
3.http_load
程序非常小,解压后也不到100K
http_load以并行复用的方式运行,用以测试web服务器 的吞吐量与负载 。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。还可以测试HTTPS类的网站请求。
官网:http://www.acme.com/software/http_load/
下载地址:
wget http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz
3.1. 参数说明
-parallel 简写-p :含义是并发的用户进程数。
-fetches 简写-f :含义是总计的访问次数
-rate 简写-r :含义是每秒的访问频率
-seconds简写-s :含义是总计的访问时间
3.2. 例子
http_load -p 20 -f 20 www.chedong.com.url
输出样例:
20 fetches, 20 max parallel, 790105 bytes, in 4.34421 seconds
//说明在上面的测试中运行了20个请求,最大的并发进程数是20,总计传输的数据是790105bytes,运行的时间是4.34421秒
39505.2 mean bytes/connection
//说明每一连接平均传输的数据量790105/20=39505.2
4.60383 fetches/sec, 181875 bytes/sec
//说明每秒的响应请求为4.60383,每秒传递的数据为181875 bytes/sec
msecs/connect: 305.351 mean, 3151.05 max, 146.267 min
//说明每连接的平均响应时间是305.351msecs,最大的响应时间3151.05msecs,最小的响应时间146.267msecs
msecs/first-response: 772.81 mean, 1555.86 max, 155.245 min
HTTP response codes:
code 200 -- 20
//说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统 遇到了瓶颈。
回复列表