Siege性能测试

    “Siege”意为围攻、包围。是一款使用纯C语言编写的开源WEB压测工具,适合在GNU/Linux上运行,具有较强的可移植性。

Siege使用多线程实现,支持随机访问多个URL,可以通过控制并发数、总请求数(or压测时间)来实现对web服务的压测。

Siege支持http,https,ftp三种请求方式,支持GET和POST方法,压测方式为同步压测。

    可以根据配置对一个web站点进行并发访问,记录每一个用户所有的请求过程的相应时间,并可以在一定数量的并发访问下重复使用。但是我觉得,Siege用于仿真用户请求负载是不错的。但是请不要使用它来执行最高的性能基准调校测试,在这个方面,我觉得还是Apache ab更好。

    下面我就不多说废话,开始安装

1、请输入该网址至浏览器下载对应的版本下载Siege(点击)

      这边我下载的版本是[siege-latest.tar.gz]

2、

root# tar -zxvf siege-latest.tar.gz                //解压

root# cd siege-4.0.4                                 

root#cd siege-*/                                        //进入siege路径

root# sudo apt-get install build-essential  //如果没有编译工具,先要安装一个

root# ./configure                                        //编译安装

root# make

root# sudo make install

root# siege.config                                    //创建配置文件

打开~/.siege/siege.conf文件,修改logfile选项

  logfile = $(HOME)/siege.log

3、输入siege -h 或者 siege -version ,验证是否成功安装(展示如下)

Usage: siege [options]

      siege [options] URL

      siege -g URL

Options:

  -V, --version          VERSION, prints the version number.

  -h, --help              HELP, prints this section.

  -C, --config            CONFIGURATION, show the current config.

  -v, --verbose          VERBOSE, prints notification to screen.

  -g, --get              GET, pull down HTTP headers and display the

                          transaction. Great for application debugging.

  -c, --concurrent=NUM    CONCURRENT users, default is 10

  -i, --internet          INTERNET user simulation, hits URLs randomly.

  -b, --benchmark        BENCHMARK: no delays between requests.

  -t, --time=NUMm        TIMED testing where "m" is modifier S, M, or H

                          ex: --time=1H, one hour test.

  -r, --reps=NUM          REPS, number of times to run the test.

  -f, --file=FILE        FILE, select a specific URLS FILE.

  -R, --rc=FILE          RC, specify an siegerc file

  -l, --log[=FILE]        LOG to FILE. If FILE is not specified, the

                          default is used: PREFIX/var/siege.log

  -m, --mark="text"      MARK, mark the log file with a string.

  -d, --delay=NUM        Time DELAY, random delay before each requst

                          between 1 and NUM. (NOT COUNTED IN STATS)

  -H, --header="text"    Add a header to request (can be many)

  -A, --user-agent="text" Sets User-Agent in request

Copyright (C) 2010 by Jeffrey Fulmer, et al.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS

FOR A PARTICULAR PURPOSE

4、常见的参数(以上图中其实都有,翻译可能不太准确,多多包涵)

-V版本号

-H帮助

-C显示当前配置

-V将通知打印屏幕

-G获取HTTP并显示

-C并发数

-T 时间

-R 运行测试次数

-F选择特定URL文件

-R指定SigeRC文件

-L日志log文件

-M标记日志文件

-D时间延迟

-H添加请求

-A设置代理

这边我粘贴一张图片解释一下吧,总比我这蹩脚英语水平翻译要好。

Siege输出结果说明:

Transactions: 总共测试次数 

Availability: 成功次数百分比 

Elapsed time: 总共耗时多少秒 

Data transferred: 总共数据传输 

Response time: 等到响应耗时 

Transaction rate: 平均每秒处理请求数 

Throughput: 吞吐率 

Concurrency: 最高并发 

Successful transactions: 成功的请求数 

Failed transactions: 失败的请求数

注意事项:

1.发送post请求时,url格式为:http://www.xxxx.com/ POST p1=v1&p2=v2 

2.如果url中含有空格和中文,要先进行url编码,否则siege发送的请求url不准确

以下三个举例:

(1)比如测试一个客户端的接口并发情况

接口地址是:http://118.212.149.xx:8080/xx/xx/xx

请求类型 : POST

请求参数 : {“accountId”:”123”,”platform”:”ios”}

请求次数 :10次

请求并发数量 : 200

请求 : (请求参数说明请参照上文中表格)

root#siege"http://118.212.149.xx:8080/xx/xx/xxPOST{\"accountId\":\"123\",\"platform\":\"ios\"}" -r 10 -c 200

返回 : (返回参数说明请参照上文中表格)

done.

Transactions:              2000 hits

Availability:            100.00 %

Elapsed time:              15.27 secs

Data transferred:          0.07 MB

Response time:              0.47 secs

Transaction rate:        130.98 trans/sec

Throughput:            0.00 MB/sec

Concurrency:              61.45

Successful transactions:        2000

Failed transactions:              0

Longest transaction:            8.17

Shortest transaction:          0.06

(2)用法举例

siege -c 300 -r 100 -f url.txt

        说明:-c是并发量,-r是重复次数。url.txt就是一个文本文件,里面是要测试的url,url.txt每行都是一个url

urls.txt文件是很多行待测试URL的列表以换行符断开,格式为:

[protocol://]host.domain.com[:port][path/to/file]

urls.txt内容:

http://192.168.80.166/01.jpg

http://192.168.80.166/02.jpg

http://192.168.80.166/03.jpg

http://192.168.80.166/04.jpg

http://192.168.80.166/05.jpg

http://192.168.80.166/06.jpg

结果:

Transactions:                 300 hits  #已完成的事务总署

Availability:              100.00 %   #完成的成功率

Elapsed time:                0.08 secs   #总共使用的时间

Data transferred:            0.94 MB   #响应中数据的总大小

Response time:                0.00 secs   #显示网络连接的速度

Transaction rate:         3750.00 trans/sec  #平均每秒完成的事务数

Throughput:               11.79 MB/sec  #平均每秒传送的数据量

Concurrency:                8.50  #实际最高并发链接数

Successful transactions:         300  #成功处理的次数

Failed transactions:               0    #失败处理的次数

Longest transaction:            0.01   #最长事务处理的时间

Shortest transaction:            0.00   #最短事务处理时间

(3)200并发针对谷歌发送请求100次

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

在urls.txt中列出所有的网址

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

随机选取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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,693评论 0 3
  • 1.登录linux机器a.打开mac的钥匙串b.ssl root@ipc.输入密码常用命令:cat /proc/v...
    qiyer阅读 533评论 1 0
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,448评论 0 13
  • 那些年 我们拥有现在都羡慕的青春 你和我 我和他 还有她一起 每天都会看一遍正大门教学楼上嵌着的 一组苍劲有力的...
    青禾吖阅读 537评论 0 5
  • 期房房产证 期房房产证办理是买期房的时候的必要准备。现房一般是指消费者在购买的时候,那些可以直接入住的商品房,但是...
    戴10274阅读 221评论 0 0