一:siege
siege是开源的一个测试工具,可以对指定文本的URL列表进行负载测试,也可以在执行其他请求前让某个请求休眠,从而让你感觉某个用户在转移到web应用的下一个文档前正在读取该文档。
http://www.joedog.org/siege-home/ 官方地址
下载地址http://www.joedog.org/pub/siege/siege-3.0.0.tar.gz
安装: 仓库里面是2.70版,你可以选择编译3.0的版本
#aptitude install siege
测试:
siege [option] [URL]
#siege -c 100 -t10S http://www.baidu.com/
-c 是并发标记,表明模拟100个并发的用户
-t 是时间标记,后面的S是秒,也可以用分钟M,小时H来指定时间。数字和后面的时间单位之间没有空格。
-C 是查看配置
-g 是显示HTTP头。适合调试
-r 是重复次数 -r 2 就是重复两次
-l 指定log存哪儿。
-d 延迟数 随机的在1和你指定的数之间
-A 设置user-agent
-i internet 和 -f 是模拟用户活动的测试参数
分析:
字段名 | 意思 | 示例 |
Transactions 已完成的测试总数 249 hits
Availability 能够请求web文档的时间 100.00%
Elapsed Time 完成测试所需的时间 9.52 secs
Data transferred 相应中数据的总大小(不包括http头的数据) 1.02 MB
Response time 整个测试过程中的平均响应时间 1.54 secs
Transaction rate 每秒要满足的事务总数 26.16 trans/sec
Throughtput 处理数据和响应需要的总时间 0.11 MB/sec
Concurrency 同时连接的平均数,数字升高时服务器性能降低 40.18
Successful transactions 整个测试过程中所执行的成功的测试总数 249
Failed transactions 整个测试过程中失败的测试总数 0
Longest transaction 一个请求所需要的最长时间 6.78
Shortest transaction 一个请求所需要的最短时间 0.38
------------------------------------------------------------------------------------------------------------------------------
上面我们说了 -f 和 -i 用来模拟用户对网站访问的行为。
-f 后面跟 url.txt 文本。
#siege -c 100 -t10S -i -f /home/url.txt
url.txt 的格式要像这样
[protocol://][servername.domain.xxx][:port][/directory/file]
如
http://www.baidu.com/
http://baike.baidu.com/
http://tieba.baidu.com/
使用-i 和-f 与最上面的测试唯一不同的是seige会随机从url.txt文本里面选择需要测试的URL来模拟用户行为。