siege 压力测试 安装使用

安装

1、下载: wget http://download.joedog.org/siege/siege-4.0.8.tar.gz (具体版本到官网上面看)

2、安装解压:tar zxvf siege-3.0.8.tar.gz

3、进入到解压后的目录:siege-3.0.8,运行命令:./configure

4、执行命令:make

5、执行命令:make install

siege -help 出现很多信息说明就安装成功了

介绍

-V, –version    打印版本信息
-h, –help   打印帮助信息
-C, –config 显示配置信息
-v, –verbose    打印冗余配置信息。
-g, –get    显示HTTP交易。
-c, –concurrent=NUM 设置并发用户数
-u, –url=”URL”  设置被测Web的URL
-i, –internet   用户模拟、随机访问URL
-b, –benchmark .    基准测试。
-t, –time=NUM   设置测试时间。
-r, –reps=NUM   设置测试次数
-f, –file=FILE  更改配置文件存档
-R, –rc=FILE    更改siegerc文件和环境变量
-l, –log    测试日志
-m, –mark=”text”    标记测试日志
-d, –delay=NUM  设置时间延迟
-H, –header=”text”  增加测试头文件
-A, –user-agent=”text”  设置代理测试请求
输出参数说明:

输出名称    解释说明
Transactions:   访问次数
Availability:   成功次数
Elapsed time:   测试用时
Data transferred:   测试传输数据量
Response time:  平均响应时间
Transaction rate:   每秒事务处理量
Throughput: 吞吐率
Concurrency:    并发用户数
Successful transactions:    成功传输次数
Failed transactions:    失败传输次数
Longest transaction:    最长响应时间
Shortest transaction:   最短响应时间

使用

-c:并发数,默认为10;

-t:压力测试时间;如-t10表示持续时间是10分钟;

-r:每个连接发出的请求数量,与t类似,所以设置了-r的值就不需要再设置t了,反之亦然;

说明:siege -c1 -r2 http://www.baidu.com -c1表示一个并发数,-r2表示URL请求2次。

-f:对应一个文件,这个文件里每一行为一个URL链接,

格式如下:

http://www.baidu.com/123

http://www.baidu.com/1234

http://www.baidu.com/123/abc

这些参数我用的比较多,就介绍这么多。

siege的使用:

A、200个用户并发访问一个网站页面www.baidu.com/aaa,持续时间为5分钟;

Siege -c200 -t5 http://www.baidu.com/aaa

Siege -c200 -r5 http://www.baidu.com/aaa 表示200用户循并发访问该网站,重复环5次;

对多个页面进行并发访问:

新建一个文件(如urls),里面的内容为:

http://www.baidu.com/aaa

http://www.baidu.com/bbb

http://www.baidu.com/ccc/abc

Siege -c200 -t5 -f urls

表示200个用户并发访问urls文件里面的URL地址,持续时间为5分钟;

siege -c 300 -r 2 -f /work/siege/siege.txt;

表示300用户并发访问文件siege.txt里面的URL地址,重复循环2次;

并发测试结果:

Transactions: 4 hits 完成4次处理 
Availability: 100.00 % 成功率 
Elapsed time: 1.19 secs 总共用时
Data transferred: 0.03MB 共数据传输:0.03MB

Response time: 0.13 secs 相应用时0.13秒,显示网络连接的速度
Transaction rate: 3.36 trans/sec平均每秒完成3.36次处理,表示服务器后台处理的速度
Throughput: 0.03MB/sec 平均每秒传送数据:0.03MB
Concurrency: 0.45 最高并发数 0.45
Successful transactions: 4成功处理次数
Failed transactions: 0 失败处理次数

Longest  transaction:0.25请求最长响应时间/每次传输所花最长时间

Shortest  transaction:0.09请求最短响应时间/每次传输所花最短时间

注意:由于速度很快,可能会达不到并发速度很高就已经完成。Response time显示的是测试机器和被测试服务器之间网络链接状况。Transaction rate则表示服务器端任务处理的完成速度。

增量压力测试

Siege包含的辅助工具:bombardment(1);

使用样例:

Bombardment siege.txt 5 3 4 1

表示:初始化URL列表siege.txt,初始化为5个用户,每次增加3个用户,运行4次,每个客户端之间的延迟为1秒或每次循环之间的延迟为1秒;

结果为csv格式:

输出成CSV格式:
siege2csv.pl (1)
siege2csv.pl将bombardment的输出变成CSV格式:
Time Data Transferred Response Time Transaction Rate Throughput Concurrency Code 200 (note that this is horribly broken.)
242 60.22 603064 0.02 4.02 10014.35 0.08
605 59.98 1507660 0.01 10.09 25136.05 0.12
938 59.98 2337496 0.02 15.64 38971.26 0.26
1157 60 2883244 0.04 19.28 48054.07 0.78

在压力测试时可以使用命令top查看系统CPU、内存使用情况;也可以使用工具nmon、sar监控服务器性能;

当并发数目设置很大时候

WARNING: The number of users is capped at 255.  To increase this
         limit, search your .siegerc file for 'limit' and change
         its value. Make sure you read the instructions there...

修改配置文件一定要找对配置文件




cd ~ 到home下
ls -a
cd .siege/
vim siege.conf 

补充说明:
做基准测试需要加-b参数,因为默认siege默认每次请求都会延时0.5秒。 有文件一定要前面加 -f
siege -c 100 -r 1 -f url.txt -b

-r 代表次数
-t 代表时间 1S 一秒

Siege命令常用参数

-c 200 指定并发数200

-r 5 指定测试的次数5

-f urls.txt 制定url的文件

-i internet系统,随机发送url

-b 请求无需等待 delay=0

-t 5 持续测试5分钟

Siege 常用案例

200个并发对http://www.google.com发送请求100次

siege -c 200 -r 100 http://www.google.com


# 随机选取urls.txt中列出所有的网址

siege -c 200 -r 100 -f urls.txt -i

# delay=0,更准确的压力测试,而不是功能测试
siege -c 200 -r 100 -f urls.txt -i -b


# 指定http请求头 文档类型

siege -H "Content-Type:application/json"
-c 200 -r 100 -f urls.txt -i -b

题外话

因为测试的是应用系统,所以从根本上来讲,并发数应该是从应用系统的业务需求来的,所以也应该从应用需求文档中来,但是,国内应用系统的需求文档基本上很少包括并发用户这样的性能需求。
考虑并发数的时候,主要还是要从被测系统的业务场景出发,多种因素结合考虑。如果你能拿到被测系统实际运行的日志,分析出访问用户的情况,那么根据这个定义并发数当然是比较接近真实的。
如果是新系统,就要根据多种因素考量,相关的说法有:
1、在线用户或者终端数:即同时在使用应用系统的用户,可能在浏览,可能在做交易。如果是知道了,一般并发用户数取在线用户的10%-30%。(思考时间适当调短或者不用,不要使用回放录制的思考时间)
2、交易总数和预期响应时间:如果你知道了每天(8小时)要完成20000笔交易,每笔交易希望在5秒内,那么可以预估并发用户数为20000/(8×3600)×5,当然这个并发数还要根据你实际测出的响应时间再调整
3、八二原则:一般可以认为80%的用户在20%的时间内完成工作,所以峰值压力的时候,一般并发数要乘以80%/20%=4
4、如果你的系统终端数量是固定的,比如就有100个客户端,那么极限压力就是这100个客户端都疯狂工作,所以峰值并发数也就是100,去掉脚本中的思考时间。
当然还有其他很多的考虑,以上就算是一个初步的参考吧。


借鉴的资料
http://www.ha97.com/4663.html
https://zhidao.baidu.com/question/1545923076557651787.html
http://www.muzifei.com/post/performance-test-by-siege.html.html

https://blog.csdn.net/shangmingtao/article/details/73850292

你可能感兴趣的:(测试,siege,siege,压力测试)