zoukankan      html  css  js  c++  java
  • 【压测】压力测试工具siege的用法

    压力测试工具siege的用法

    Siege是一款高性能的Http压力测试工具。
    Siege支持身份验证、cookies、http、https和ftp协议。

    支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试。

    安装方法一:

    登录官网http://download.joedog.org/siege/挑选版本

    cd /usr/local/src
    wget http://download.joedog.org/siege/siege-4.0.4.tar.gz
    tar -zxvf siege-4.0.4.tar.gz
    cd siege-4.0.4/
    ./configure --prefix=/usr/local/siege
    make && make install 
    #将命令加入全局
    ln -s /usr/local/siege/bin/siege /usr/bin/siege

    安装方法二:

    #wget http://www.joedog.org/pub/siege/siege-latest.tar.gz
    #tar -xzvf siege-latest.tar.gz
    #./configure; make
    #make install

    Siege命令常用参数

    -c 200 指定并发数200
    -r 5 指定测试的次数5
    -f urls.txt 制定url的文件
    -i internet系统,随机发送url
    -b 请求无需等待 delay=0
    -t 5 持续测试5分钟
    # -r和-t一般不同时使用

    命令参数

    参数描述
    -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 最短事务时间


    常用的siege命令举例

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

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

    Siege输出结果说明
    Transactions: 总共测试次数
    Availability: 成功次数百分比
    Elapsed time: 总共耗时多少秒
    Data transferred: 总共数据传输
    Response time: 等到响应耗时
    Transaction rate: 平均每秒处理请求数
    Throughput: 吞吐率
    Concurrency: 最高并发
    Successful transactions: 成功的请求数
    Failed transactions: 失败的请求数

    # 在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
    
     
    #支持application/json方式请求
    siege -c1 -r1 "http://192.168.16.101:6005/bpm/processInstances/review PUT <./1.json "

    #支持多个Header参数

    siege -c10 -r1 -p --header="Authorization: Bearer b7c75bae-9d68-4a74-bffb-95eb08a40918" --header="sg: 123456"

    # 指定http请求头 文档类型

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

    Siege使用的一些总结

    1、发送post请求时,url格式为:http://www.xxxx.com/ POST p1=v1&p2=v2
    2、如果url中含有空格和中文,要先进行url编码,否则siege发送的请求url不准确

    添加

    3、siege -C 可以查看相关的配置参数,可以自行修改,比如是否显示log,超时时间

    4、如果要支持https,需要先下载安装openssl,

    下载地址https://github.com/openssl/openssl
    4.1   开始安装openssl

    git clone https://github.com/openssl/openssl
    cd openssl
    ./config --prefix=/usr/local/openssl
    make
    make install
    openssl version
    

    4.2  安装siege

    tar zxvf siege-4.0.4.tar.gz
    cd siege-4.0.4
    make clean
    ./configure --prefix=/usr/local/siege --with-ssl=/usr/local/openssl
    make 
    make install
    

    siege安装完毕

    注意:siege默认只支持255个并发数,可以自己自定义,修改/root/.siege/siege.conf下的limit数值。

    参考资料:

      

      

      

      

      

  • 相关阅读:
    hash和history的区别帮助向我一样迷的人弄明白,history和hash
    调用谷歌浏览器的打印所遇到的困难,回流重绘
    webpack简单搭建基础感悟
    linux
    介绍一下call,apply,bind方法实现,源于MDN中的bind
    二进制流转base64加快速度
    手写一个instanceof
    青蛙跳台阶问题
    Django中vue的使用
    pip install 出现 timeout 时的两个临时解决办法
  • 原文地址:https://www.cnblogs.com/chenxiaomeng/p/13130526.html
Copyright © 2011-2022 走看看