平时有的时候搞了个小东西,自己点着测试太麻烦,所以想到找个可以自动发请求帮我测试的软件,http_load 正好。软件本身不大,而且用起来很简单,也可以做适当的压力测试。用起来很方便。
直接到这里下载就行了
http://www.acme.com/software/http_load/
1.安装http_load
下载得到文件
http_load-12mar2006.tar.gz
解开压缩
tar zxvf http_load-12mar2006.tar.gz
移动到工作目录
cd http_load-12mar2006.tar.gz
make
make install
报错如下:
[root@localhost http_load-12mar2006]# make install
rm -f /usr/local/bin/http_load
cp http_load /usr/local/bin
rm -f /usr/local/man/man1/http_load.1
cp http_load.1 /usr/local/man/man1
cp: 无法创建一般文件‘/usr/local/man/man1’: 没有那个文件或目录
make: *** [install] 错误 1
估计是/usr/local/man这个目录不存在导致的
创建目录: mkdir /usr/local/man
再次make install。OK啦。
2.工具使用
刚开始测试和学习,可以用 python -m SimpleHTTPServer 启动一个小的服务器,在下面当前目录建一个文件home。
创建文件
vim urls
写入URL
http://127.0.0.1:8000/home(因为SimpleHTTPServer 默认是监听8000端口)
./http_load -rate 5 -seconds 10 urls
开始访问python服务器的,home文件了,通过python的输出就可以看到效果
- - [20/Oct/2011 11:03:30] "GET /home HTTP/1.0" 200 - - - [20/Oct/2011 11:03:30] "GET /home HTTP/1.0" 200 - - - [20/Oct/2011 11:03:30] "GET /home HTTP/1.0" 200 - - - [20/Oct/2011 11:03:30] "GET /home HTTP/1.0" 200 - - - [20/Oct/2011 11:03:30] "GET /home HTTP/1.0" 200 -
参数含义
-fetches 简写-f :含义是总计的访问次数
-rate 简写-r :含义是每秒的访问频率
-seconds简写-s :含义是总计的访问时间
-parallel 简写-p:并发访问的线程数
urls.txt 是一个url 列表,每个url 单独的一行。当然也可以直接跟一个url 而不是url 列表文件
返回结果
29 fetches, 22 max parallel, 790047 bytes, in 10.0021 seconds 27243 mean bytes/connection 2.8994 fetches/sec, 78988.5 bytes/sec msecs/connect: 10.4312 mean, 23.104 max, 2.12 min msecs/first-response: 381.184 mean, 3269.51 max, 41.067 min HTTP response codes:
结果分析:
29 fetches, 22 max parallel, 790047 bytes, in 10.0021 seconds
29个请求,最大并发数22,总计传输的数据为790047bytes,运行时间10.0021秒
27243 mean bytes/connection
每一连接平均传输的数据量790047/29=27243
2.8994 fetches/sec, 78988.5 bytes/sec
每秒的响应请求为2.8994,每秒传递的数据为78988.5btyes/sec
msecs/connect: 10.4312 mean, 23.104 max, 2.12 min
没连接的平均响应时间是10.4312 msecs,最大响应时间23.104 msecs,最小响应时间2.12 msecs
msecs/first-response: 381.184 mean, 3269.51 max, 41.067 min
HTTP response codes: