siege

这是Linux系统下的一个测试工具,完全使用C语言实现,可以对HTTP和FTP服务器进行负载和性能测试。通过使用Siege 提供的功能,可以很容易的制定测试计划:包括规定使用并发用户数、重复数量,从而可以模拟在服务器、网络或者其它对象上附加负载以测试他们提供服务的受压能力,方便的测试服务器的性能。最后,利用Siege提供的测试结果来分析性能指标或者分析他们提供的服务在不同负载条件下的性能情况,分析测试结果,找出影响系统性能的瓶颈。

一、安装下载

在linux服务器上操作

1、下载最新版本的siege

wget http://download.joedog.org/siege/siege-latest.tar.gz

2、解压并进入siege路径

tar -zxvf siege-latest.tar.gz
cd siege-*/

3、编译安装

./configure
make
sudo make install

4、验证安装是否成功

siege -h

二、输入输出参数说明

1、输入参数:

2、输出参数:

siege示例,使用siege对ur.tencent.com进行加压(模拟20个用户同时访问,一共跑3个循环)

siege -c 20 -r 3 http://ur.tencent.com

测试结果:

输出参数解释说明:

  • 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: 最短单个请求时间

三、siege示例:

http://ur.tencent.com/categories/7
http://ur.tencent.com/categories/7/?page=2
http://ur.tencent.com/categories/7/?page=3

urls.txt

urls.txt文本中保存了多个页面url

1、使用siege对urls.txt进行加压,并发数是5,持续运行1分钟

siege -c 5 -t 1M -f urls.txt  

2、对多个页面加压后,保存siege日志

siege -c 5 -t 1M -f urls.txt --log=result.csv  #urls.txt、result.csv两个文件名可带路径

注:

  • 可以使用命令sz result.csv将结果文件拷贝到本地(没有sz命令Ubuntu使用: centOS用yum -y install lrzsz安装既可)
  • 也可以用Xshell 5中的sftp工具:get result.csv 下载文件到Xshell 本地Sessions文件夹中

3、压测时候启用gzip压缩

gzip压缩就是指服务器在返回请求时候先将请求压缩一下,以减少response的体积,客户端收到response之后会自行解压,这是提升传输速度的一般做法。在请求头中加入Accept-Encoding:gzip就可以告诉服务器返回压缩后的response

siege -c 5 -t 1M -f urls.txt -H "Accept-Encoding:gzip" --log=result_gip.csv

  

4、模拟移动站点(移动端:Android、iOS)访问进行压测

需要发送相应的user-agent,服务器就会根据这个值判断浏览器是移动版还是桌面版,在这里用iphone的user-agent模拟iPhone5对百度站点进行访问。(iphone的user-agent、chrome的user-agent、安卓ios主流浏览器User-Agent汇总)

siege -c1 -r1 -A"Apple-iPhone5C2/1001.525" http://www.baidu.com

siege -c1 -r1 -A"Apple-iPhone5C2/1001.525" http://www.baidu.com
[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.4
** Preparing 1 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200     0.09 secs:    2925 bytes ==> GET  /
HTTP/1.1 200     0.07 secs:    2340 bytes ==> GET  /static/index/u.pngTransactions:                   2 hits
Availability:              100.00 %
Elapsed time:                0.16 secs
Data transferred:            0.01 MB
Response time:                0.08 secs
Transaction rate:           12.50 trans/sec
Throughput:                0.03 MB/sec
Concurrency:                1.00
Successful transactions:           2
Failed transactions:               0
Longest transaction:            0.09
Shortest transaction:            0.07

移动版输出结果

桌面版:

siege -c1 -r1  http://www.baidu.com

** SIEGE 4.0.4
** Preparing 1 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200     0.14 secs:  112430 bytes ==> GET  /
HTTP/1.1 200     0.06 secs:    2947 bytes ==> GET  /baidu.html?from=noscript
HTTP/1.1 200     0.05 secs:      91 bytes ==> GET  /img/gs.gif
[error] HTTPS requires libssl: Unable to reach ss1.bdstatic.com with this protocol: Operation now in progress
HTTP/1.1 200     0.13 secs:   93750 bytes ==> GET  /r/www/cache/static/jquery/jquery-1.10.2.min_65682a2.js
HTTP/1.1 200     0.06 secs:     705 bytes ==> GET  /img/baidu_jgylogo3.gif
HTTP/1.1 200     0.06 secs:    7877 bytes ==> GET  /img/bd_logo1.pngTransactions:                   6 hits
Availability:               85.71 %
Elapsed time:                0.54 secs
Data transferred:            0.21 MB
Response time:                0.08 secs
Transaction rate:           11.11 trans/sec
Throughput:                0.38 MB/sec
Concurrency:                0.93
Successful transactions:           6
Failed transactions:               1
Longest transaction:            0.14
Shortest transaction:            0.05

桌面版输出结果

对比移动版和桌面版的发现在同样的并发量和循环次数上,移动版的传输数据的量更小(因为移动端流量毕竟贵嘛)

转载于:https://www.cnblogs.com/Keep-Ambition/p/8342479.html

性能测试--siege相关推荐

  1. CentOS上安装Web性能测试工具Siege 示例

    2019独角兽企业重金招聘Python工程师标准>>> 本文记录一次在CentOS上安装Web性能测试工具Siege的步骤,并对安装过程中遇到的问题进行解决~ Siege是什么? S ...

  2. 实战练习之使用siege进行服务端性能测试

    目录 环境 目的 安装siege siege的常见参数 实战一:一个URL场景测试 实现 测试结果 实战二:多个URL场景测试 实现 实战三:将结果保存到日志里 实现 实战四:压测时候启用gzip压缩 ...

  3. mac linux 性能测试工具,Mac/Linux压力测试神器Siege详解(附安装过程)

    背景描述 在做Web项目或者一个服务器程序的时候,往往会遇到以下的场景,想要确定自己服务器吞吐量有多大.在服务器中需要应用线程池但不知道线程池的数量应该设置多少.对JVM相关参数进行调优验证时需要大量 ...

  4. apache性能测试工具ab使用详解

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...

  5. 史上最全的Web性能测试工具大全(下 )

    2019独角兽企业重金招聘Python工程师标准>>> 本文继续为大家介绍Web开发中常用的性能测试工具,如果你有其他性能测试产品推荐,欢迎交流! Opera Dragonfly O ...

  6. [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具

    更多参考 软件测试专家工具包2性能测试 服务器端性能 image.png Locust.io – 了解服务器端性能的好工具. 语言python3.源码 python3+ python2.7+ gith ...

  7. 性能测试分析软件汇总–开源、商业全部收集

    转载地址 https://my.oschina.net/zlp5201/blog/530290 本文共包含:商业性能测试.监控.分析工具和免费.开源性能测试监控分析工具:共涉及java.php.net ...

  8. 基于Windows下的Web性能测试和压力测试

    基于Windows下的Web性能测试和压力测试 Web测试 随着Internet的日益普及,现在基于B/S结构的大型应用越来越多,可如何对这些应用进行测试成为日益迫切的问题.有许多测试人员来信问我B/ ...

  9. 比JMeter还轻量的压力测试工具是谁?Siege

    背景 性能测试是在产品或业务量达到一定规模的时候,不得不重视的一项测试活动(类型),生产中很有可能因为一点点的性能问题而导致不可避免的损失:做性能测试的工具呢,一般选择不是loadrunner就是jm ...

最新文章

  1. s3c6410学习笔记-烧写uboot+构建文件系统
  2. NLP复习资料(4)-第八章 句法分析
  3. cocos2d-基本概念(4)-CallFunc Action
  4. linux 双线,linux 双线接入方案
  5. Python——如何屏蔽函数内部的print输出
  6. 珍稀干货!阿里 Web 音视频开发趟坑指南
  7. php和java的语法区别吗_php语法同java语法的基本区别(实例项目需求,php才能熟)...
  8. 使用SaveAsPDFandXPS + jacob实现Java word转pdf
  9. 浅谈android应用之编程语言
  10. 美信科技冲刺A股上市:拟募资4亿元,公司及董事长张定珍曾遭处罚
  11. JavaScript除数不为0异常处理
  12. 数据重生:让神经机器翻译中的不活跃样本“复活”
  13. CSS设置阴影样式大全 包含所有样式 有图有代码
  14. 米的换算单位和公式_英寸和厘米的换算、英尺和米的换算及英寸和毫米的单位换算公式...
  15. Android Process 'command 'C:\Users\Win\AppData\Local\Android\Sdk\build-t non-zero exit value 1错误解决方案
  16. Qt实现屏幕虚拟软键盘
  17. 静电场边值问题及其求解
  18. 史上最全数据中心标识 参观数据中心你必须认识
  19. 微信小程序(一)基础知识
  20. lombok @data 忽略属性_Lombok使用指南

热门文章

  1. java内存管理总结
  2. POJ1993+矩阵相乘
  3. Sqlserver存储过程和C#分页类简化你的代码!
  4. (15)ZYNQ FPGA AXI-stream总线简介(学无止境)
  5. (6)Zynq AXI_HP接口介绍
  6. (14)FPGA面试题线与逻辑
  7. FPGA控制AD7768采集
  8. FPGA时钟资源PLL与DLL区别
  9. http 访问mysql数据库_04.Http协议之GET请求与访问MySQL数据库
  10. python连接mysql_Python连接MYSQL数据库