首页 > 代码库 > 【转】http_load压力测试

【转】http_load压力测试

性能测试工具只是测试手段,不一段要掌握的多而全,关键是要顺手。当然,多了解一些测试工具可以信手掂来,快速进入测试。最重要的是了解工具的特性,适合的测试场景,能满足多高的并发需求,支持哪些协议,是否有足够好的扩展性。

我这里只是整理下很久以前的内容。简单说明下几款web性能测试工具。因为这些轻量级的测试工具通常不能模拟较复杂的场景,所以对几款工具本身未进行性能对比。

http_load

下载

http://www.acme.com/software/http_load/

运行方式

运行命令行
1. http_load -parallel 10 -fetches 1000 urls.txt 
2. http_load -rate 5 -seconds 300 urls.txt 
可缩写为:
1. http_load -p 10 -f 1000 urls.txt 
2. http_load -r 5 -s 300 urls.txt
参数介绍
-p 并发访问进程数
-f 总的访问次数
-r 每秒的访问频率,限制大于1小于1000
-s 总的访问时间
通常参数组合:-p –f;-r -s
urls.txt 是你要访问的网址名,参数可以是单个的网址也可以是包含网址的文件。

并发模式

http_load以并行复用的方式运行,它不同于大多数压力测试工具,它可以以一个单一的进程运行。这应该是http_load不能支撑高并发的硬伤。
参考:http://www.51testing.com/?uid-159438-action-viewspace-itemid-154740

支持协议

支持http、https协议,请求方式默认为GET方式。不支持POST方式。
有同行对其源码进行修改可以支持POST方式,
参考:http://www.51testing.com/?uid-159438-action-viewspace-itemid-153701

url参数

可以指定单个或者多个url,以文本文件的形式传参。
url个数限制:未明确限制,但是http_load会将所有的url都读入内存,且对文件的大小有限制。
另外,url过多对性能影响较大,所以不推荐url个数过多。
参考:http://www.51testing.com/?uid-159438-action-viewspace-itemid-151584
http://www.cnblogs.com/subsir/articles/2574905.html

参数读取方式

http_load采取的是随机读取url。不支持顺序读。
参考:http://www.51testing.com/?uid-159438-action-viewspace-itemid-151584

http参数

如果需要对http的header和body进行设置的话恐怕http_load是不支持的,没看到有相关参数进行支持

http响应解析

http请求的响应会解析返回码,用户不能自定义解析响应,也不支持写文件存储

测试结果

qatest@app-67:~/linsa/http_load-12mar2006$ ./http_load -r 1000 -s 5 url.txt 
4331 fetches, 15 max parallel, 3.36822e+07 bytes, in 5.00107 seconds
7777 mean bytes/connection
866.015 fetches/sec, 6.735e+06 bytes/sec
msecs/connect: 4.9993 mean, 3004.15 max, 2.074 min
msecs/first-response: 2.34363 mean, 207.503 max, 2.119 min
HTTP response codes:
code 200 -- 4331

fetches运行了4331个请求,最大的并发进程数是15,总计传输的数据是3.36822e+07 bytes,运行的时间是5.00107秒
关注点:总请求数、最大并发进程数
7777 mean bytes/connection:每个请求/连接传输的数据量
866.015 fetches/sec, 6.735e+06 bytes/sec
fetches/sec每秒请求数/访问次数,bytes/sec每秒传输的数据量
关注点:每秒的响应请求数 
msecs/connect: 4.9993 mean, 3004.15 max, 2.074 min
平均响应时间,最大响应时间,最小响应时间
HTTP response codes: 
code 200 -- 4331
请求响应码
服务器返回状态代码:
200 —表示请求成功。
3XX —-重定向类
403、404 —客户端错误类(服务器没有找到与请求URI相符的资源。)
500 —服务器错误类(内部服务器错误)
等等
关注点:是否有403、404、500错误产生

 

【转】http_load压力测试