2013年5月16日星期四

linux下开源压力测试工具Siege

参考连接:
http://xiahongyuan.blog.51cto.com/906214/735445



Siege一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

下载安装

获取:http://www.joedog.org/
官方提供ftp下载
解压:
$ tar -zxf siege-latest.tar.gz
进入解压目录:
$ siege-3.0.1/
安装:
$ ./configure
$ make
$ make install

这一步我操作失败了,根据提示自动安装
$ apt-get install siege
系统自动安装了2.7版本的,所以其实不用去单独下载了


使用siege

$ siege -h  会出来所有siege相关的参数指令

Usage: siege [options]
       siege [options] URL
       siege -g URL
Options:
  -V, --version           版本信息,打印版本号.
  -h, --help              帮助信息.
  -C, --config            配置信息,显示当前配置.
  -v, --verbose           打印通知信息.
  -g, --get               get方式发送请求,并且显示获取的http请求头信息,一般用于应用程序调试
  -c, --concurrent=NUM    并发数,默认10
  -i, --internet          模拟网络用户,随机请求url.
  -b, --benchmark         标准测试:请求无延时.
  -t, --time=NUMm         根据m设定为S,M,H定时测试 ex: --time=1H, 一小时后测试.
  -r, --reps=NUM          重复请求次数.
  -f, --file=FILE         含url的文件.
  -R, --rc=FILE           指定远程控制文件
  -l, --log[=FILE]        log文件,如果没有指定,默认使用PREFIX/var/siege.log
  -m, --mark="text"       标记log文件的类型/格式.
  -d, --delay=NUM         延迟时间,随机延迟(1-num)之间的时间
  -H, --header="text"     添加请求头,可以多个
  -A, --user-agent="text" 请求中设置用户代理


$ touch linkfile  //新建一个linkfile
$ vi linkfile      //编辑linkfile,里面全部是url


//模拟10个用户随机访问10次linkfile中的链接

$ siege -c 10 -r 10 -f linkfile

测试结果:
done.                                                                     Transactions:                  100 hits    //完成100次请求
Availability:                 100.00 %      //有效请求
Elapsed time:                  14.75 secs   //总耗时
Data transferred:               1.97 MB     //总传送数据
Response time:                  0.40 secs    //每秒响应次数
Transaction rate:               6.78 trans/sec  //每秒处理次数
Throughput:                     0.13 MB/sec   //每秒传输数据量 MB
Concurrency:                    2.69        //实际最大并发
Successful transactions:         100        //成功处理次数
Failed transactions:               0        //失败处理次数
Longest transaction:            6.46        //最长处理时间
Shortest transaction:           0.08        //最短处理时间


//get请求 获取请求头和响应头信息
$ siege -g http://www.baidu.com

测试结果:

以下是请求内容

GET / HTTP/1.1
Host: www.baidu.com
Accept: */*
Accept-Encoding: gzip
User-Agent: JoeDog/1.00 [en] (X11; I; Siege 2.70)
Connection: close

以下是响应内容

HTTP/1.1 200 OK
Date: Thu, 16 May 2013 03:05:07 GMT
Server: BWS/1.0
Content-Length: 4310
Content-Type: text/html;charset=utf-8
Cache-Control: private
Set-Cookie: BDSVRTM=5; path=/
Set-Cookie: H_PS_PSSID=2424_1442_2449_1944_1788_2250; path=/; domain=.baidu.com
Set-Cookie: BAIDUID=6B5B2875A9C1F6119218BE07DD4B2E57:FG=1; expires=Thu, 16-May-43 03:05:07 GMT; path=/; domain=.baidu.com
Expires: Thu, 16 May 2013 03:05:07 GMT
Content-Encoding: gzip
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Connection: Close


没有评论:

发表评论