有3种操作模式:
1) Regression (when invoked by bombardment)Siege从配置文件中读取URLs,按递归方式,逐个发送请求
2) Internet simulation (Siege从配置文件中读取URLs,随机选取URL发送请求)
3) Brute force (在命令行上写上一个单独的URL,发送请求)
安装siege
1、更新系统
sudo apt-get update && sudo apt-get upgrade --show-upgraded
2、下载最新版本的siege
wget http://download.joedog.org/siege/siege-latest.tar.gz
3、解压并进入siege路径
tar -zxvf siege-latest.tar.gz
cd siege-*/
4、安装编译工具
sudo apt-get install build-essential
5、编译安装siege
./configure #配置#
make #调用make#
sodu make install #安装源代码#
Siege以命令行方式使用,调用格式如下: siege [options]
Siege命令常用参数
-c 200 指定并发数200
-r 5 指定测试的次数5
-f urls.txt 制定url的文件
-i internet系统,随机发送url
-b 请求无需等待 delay=0
-t 5 持续测试5分钟
# -r和-t一般不同时使用
Siege输出结果说明
- Transactions: siege对服务器的访问次数。如果页面发生了redirect,那么siege会将跳转过的请求算成是另一个transaction
- Availability: socket连接的成功率。算法是,如果页面发生了timeout,4xx,5xx,那么该请求算是失败请求,成功率就等于
(所有请求-失败请求) / 总请求数
- Elapsed time: 所有请求耗费的时间
- Data transferred: 所有请求传输的数据量,包括请求的headers和content。所以这个数值可能比server端统计的数值要大一点
- Response time: 平均响应时间
- Transaction rate:
Transactions / Elapsed time
- Throughput: 每秒平均传输的数据量
- Concurrency: 平均并发的请求数
- Successful transactions: 所有status code < 400的transactions数量
- Failed transactions: 所有status code >= 400的transactions数量
- Longest transaction: 最耗时的请求时间
- Shortest transaction: 最短单个请求时间
1,发送post请求时,url格式为:http://www.xxxx.com/ POST p1=v1&p2=v2
2,如果url中含有空格和中文,要先进行url编码,否则siege发送的请求url不准确
场景分析
使用siege对ur.tencent.com进行加压。
要求
- 模拟20个用户同时访问
- 一共跑3个循环
siege -c 20 -r 3 http://ur.tencent.com
做HTTPS性能测试
1、sudo apt-get install openssl
2、sudo apt-get install libssl-dev
这些命令要在siege的目录下运行
3、./configure -with-ssl=./configure --with-ssl
4、sudo make
5、sudo make clean
6、sudo make install
压测https网址
7、siege -c10 -r5