Siege是一款高性能的Http压力测试工具。
Siege支持身份验证、cookies、http、https和ftp协议。
Linux安装Siege
如果要支持https,需要先下载安装openssl, 下载地址:https://github.com/openssl/openssl
1.开始安装openssl
0 1 2 3 4 5 6 |
git clone https://github.com/openssl/openssl cd openssl ./config --prefix=/usr/local/openssl make make install openssl version |
2.开始安装siege
下载地址:http://download.joedog.org/siege/siege-latest.tar.gz
0 1 2 3 4 5 6 |
tar zxvf siege-4.0.5.tar.gz cd siege-4.0.5 make clean ./configure --prefix=/usr/local/siege --with-ssl=/usr/local/openssl make make install |
siege安装完毕
注意:siege默认只支持255个并发数,可以自己自定义,修改/root/.siege/siege.conf下的limit数值。
命令参数
参数 | 描述 |
---|---|
-V, –version | 打印版本号 |
-h, –help | 打印帮助信息 |
-C, –config | 打印当前配置信息 |
-g, –get | 拉取http头信息 |
-p, –print | 打印整个页面的内容 |
-c, –concurrent=NUM | 并发用户数量,默认10个 |
-r, –reps=NUM | 运行次数 |
-d, –delay=NUM | 随机时间延迟(秒) |
-b, –benchmark | 请求没有延迟 |
-i, –internet | 模拟网络用户随机点击URL |
-f, –file=FILE | 选择指定的URL文件 |
-R, –rc=FILE | 指定siegerc文件 |
-l, –log[=FILE] | 日志文件,默认是 PREFIX/var/siege.log |
-H, –header=”text” | 给请求添加头,支持多个 |
-A, –user-agent=”text” | 给请求设置User-Agent |
-T, –content-type=”text” | 给请求设置Content-Type |
性能参数
参数 | 描述 |
---|---|
Transactions | 命中次数 |
Availability | 命中率 |
Elapsed time | 整个压测花费的时间,从第一个开始到最后一个结束 |
Data transferred | 整个压测数据传输的总和 |
Response time | 响应时间是响应每个模拟用户请求所花费的平均时间 |
Transaction rate | 事务速率是服务器每秒能够处理的平均事务数. 简而言之:事务除以经过的时间。 |
Throughput | 吞吐量是从服务器到所有模拟用户每秒传输的平均字节数 |
Concurrency | 并发是同时连接的平均数,这是一个随服务器性能下降而上升的数字。 |
Successful transactions | 成功事务次数 |
Failed transactions | 失败事务次数 |
Longest transaction | 最长事务时间 |
Shortest transaction | 最短事务时间 |
应用举例
1.基础应用
siege -c10 -r1 -p url
2.支持多个Header参数
siege -c10 -r1 -p --header="Authorization: Bearer b7c75bae-9d68-4a74-bffb-95eb08a40918" --header="sg: 123456"
3.支持application/json方式请求
siege -c1 -r1 "http://192.168.16.101:6005/bpm/processInstances/review PUT <./1.json "
4.支持从文件读取url
siege -c9 -r1 -f url.txt
参考资料
windows安装siege
压力测试工具下载siege-windows-master-3.0.5.0
解压双层包,一定要保证根目录是C:\siege-windows,再把根目录配置成系统的环境变量(windows配置环境变量不用重启的方法),之后就可以直接使用。
SIEGE-3.0.5 for windows版是使用Cygwin编译, 在windows 7 家庭高级版 64bit 和 windows XP 32bit下测试的
关于SIEGE
Siege是一个http负载测试和基准测试工具。它的设计目的是让web开发人员在被迫的情况下测量他们的代码,以了解如何在internet上加载代码。支持基本认证,cookie, HTTP和HTTPS协议。它允许用户使用可配置数量的模拟web浏览器访问web服务器。这些浏览器使服务器“陷入困境”。
**测试的例子**
使用并发线程(连接)10测试基准http://127.0.0.1,持续60秒
siege -c10 -t60s http://127.0.0.1
测试基准http://127.0.0.1,不限制并发线程(连接)60秒
siege -b -t60s http://127.0.0.1
测试和输出日志到文件
siege -c10 -t60s http://127.0.0.1 > log.txt
使用和选项
**使用**
siege options
siege options URL
siege -g URL
**选项**
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
-V --version 版本:打印版本号。 -h --help 帮助。 -C --config 配置:显示当前配置。 -v --verbose 使用示例、帮助信息、版本信息 -q --quiet 关闭冗余并抑制输出。 -g --get 下拉HTTP标头并显示事务。非常适合应用程序调试。 -c --concurrent=NUM 并发用户数量,默认为10 -i --internet 用户模拟, 随机点击url。 -b, --benchmark 基准测试:请求之间没有延迟。 -t --time=NUMm 计时测试,其中“m”是修饰词S, m或h。示例: --time=1H,测试一小时 -r --reps=NUM reps,运行测试的次数。 -f --file=file file,选择一个特定的url文件。 -R --rc=FILE RC, 指定一个siegerc文件 -l --log[=FILE] log to FILE。如果没有指定FILE,则使用默认值:PREFIX/var/sieg .log -m --mark="text" 标记,用字符串标记日志文件。 -d --delay=NUM 时间延迟,1到NUM之间的每个请求之前的随机延迟。 -H --header="text"向请求添加一个header(可以是多个) -A --user-agent="text" 设置请求中的UA,“user-agent” -T --content-type="text" 设置请求中的内容类型,“Content-Type” |
结果说明:
Transactions: 550 hits //完成550次处理
Availability: 55.00 % //55.00 % 成功率
Elapsed time: 31.32 secs //总共用时
Data transferred: 1.15 MB //共数据传输1.15 MB
Response time: 3.04 secs //显示网络连接的速度
Transaction rate: 17.56 trans/sec //均每秒完成 17.56 次处理:表示服务器后
Throughput: 0.04 MB/sec //平均每秒传送数据
Concurrency: 53.44 //实际最高并发数
Successful transactions: 433 //成功处理次数
Failed transactions: 450 //失败处理次数
Longest transaction: 15.50 //每次传输所花最长时间
Shortest transaction: 0.42 //每次传输所花最短时间
更多信息请访问 siege 的作者 http://www.joedog.org/siehome/
创建地址:www.cekpr.com谷歌[Pagerank Checker](http://www.cekpr.com)
其它压力测试工具介绍:https://blog.csdn.net/qq_33440246/article/details/80591070