Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。siege可以从您选择的预置列表中请求随机的URL。所以siege可用于仿真用户请求负载,而ab则不能。但不要使用siege来执行最高性能基准调校测试,这方面ab就准确很多。
安装 Siege
01
02
03
04
|
#tar -xzvf siege-latest.tar.gz # ./configure# make #make install |
Siege命令常用参数
-c 200 指定并发数200
-r 5 指定测试的次数5
-f urls.txt 制定url的文件
-i internet系统,随机发送url
-b 请求无需等待 delay=0
-t 5 持续测试5分钟
# -r和-t一般不同时使用
常用的siege命令举例
# 200个并发对http://www.google.com发送请求100次
01 | siege -c 200 -r 100 http: //www .google.com |
# 在urls.txt中列出所有的网址
01 | siege -c 200 -r 100 -f urls.txt |
# 随机选取urls.txt中列出所有的网址
01 | siege -c 200 -r 100 -f urls.txt -i |
# delay=0,更准确的压力测试,而不是功能测试
01 | siege -c 200 -r 100 -f urls.txt -i -b |
# 指定http请求头 文档类型
01 | siege -H "Content-Type:application/json" -c 200 -r 100 -f urls.txt -i -b |
Siege输出结果说明
Transactions: 总共测试次数
Availability: 成功次数百分比
Elapsed time: 总共耗时多少秒
Data transferred: 总共数据传输
Response time: 等到响应耗时
Transaction rate: 平均每秒处理请求数
Throughput: 吞吐率
Concurrency: 最高并发
Successful transactions: 成功的请求数
Failed transactions: 失败的请求数
Siege使用的一些总结
1,发送post请求时,url格式为:http://www.xxxx.com/ POST p1=v1&p2=v2
2,如果url中含有空格和中文,要先进行url编码,否则siege发送的请求url不准确
添加
siege -C 可以查看相关的配置参数,可以自行修改,比如是否显示log,超时时间
—————————————————————————————————————–
Example:
新建url.txt, 加入
http://www.baidu.com GET
执行: siege -c 1000 -r 20 -f ./url.txt -i -b