Siege工具的使用

简介

Siege是一款高性能的Http压力测试工具。
Siege支持身份验证、cookies、http、https和ftp等协议。它旨在让Web开发人员测量其代码的性能,以了解它如何在互联网上加载。它允许用户使用可配置数量的并发模拟用户访问Web服务器。性能测量包括测试的经过时间,传输的数据量(包括标头),服务器的响应时间,事务速率,吞吐量,并发性以及返回的确定次数。

安装

下载Siege:http://download.joedog.org/siege/
我这里下载了最新的版本 siege-4.0.4.tar.gz

tar -xzvf siege-4.0.4.tar.gz
cd siege-4.0.4
./configure
make
make install

可以通过

siege -version

查看版本号

使用说明

输入参数

输入名称 解释说明
-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 最短响应时间|

并发数量配置

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

使用

基本使用

这边对需要简单参数的请求可使用一下命令进行测试

siege "http://localhost:8080/test POST {\"name\":\"songyaxu\"}" -r 5 -c 100

复杂的使用

这边因为接口的原因无法使用重复参数测试,随意这边使用shell写了一个生产测试url的脚本。

#!/bin/bash
count=50
rm -r ./json*
for ((i = 1;i<=count;i++))
do
name="json"$i.json
touch $name
echo { >> $name
echo  \"messageType\": 6, >> $name
echo  \"data\": \"\{\\\"s\\\":\\\"sss\\\",\\\"status\\\":1,\\\"name\\\":\\\"songyaxu\\\"\}\", >> $name
echo  \"callback\": [ >> $name
echo    { >> $name
echo      \"name\":\"bbbz\", >> $name
echo      \"url\": \"http://localhost:8080/postFail\", >> $name
echo      \"method\": \"post\", >> $name
echo      \"headers\": { >> $name
echo        \"content-type\": \"application/x-www-form-urlencoded\" >> $name
echo      } >> $name
echo    } >> $name
echo  ], >> $name
echo  \"sendCallback\":{ >> $name
echo      \"name\":\"bbbz\", >> $name
echo      \"url\": \"http://localhost:8080/postFail4\", >> $name
echo      \"method\": \"post\", >> $name
echo      \"headers\": { >> $name
echo        \"content-type\": \"application/x-www-form-urlencoded\" >> $name
echo      } >> $name
echo    }, >> $name
echo  \"uniqueKey\":\""key"$i\", >> $name
echo  \"canceledUniqueKeyList\":[\"zzz3\",\"zzz4\"], >> $name
echo  \"timeStamp\":\"2019-09-04 18:30:00\", >> $name
echo  \"retryPolicy\":1 >> $name
echo } >> $nameecho "正在创建第"$i"个文件"
doneecho "创建请求文件urls.txt"
touch urls.txt
for (( i = 1; i <= count ; i++ ))
do
echo http://localhost:8080/test/test POST \<./json$i.json >> urls.txt
doneecho "successful!!!"

这里通过count可以创建不同数量的请求参数。

通过以下方式进行测试。

siege -c 100 -r 1 -f ./urls.txt

Siege工具的使用相关推荐

  1. 测试服务器并发量和承载力(压力测试)

    服务器压力测试工具 你可以使用任何基准测试工具来验证这个应用的性能,不过我们使用最最最优秀的Siege utility工具进行测试. 首先你需要一个linux系统 安装siege工具 代码如下: 切换 ...

  2. 渗透测试-----9-拒绝服务(黑客其它的攻击方式)

    拒绝服务(黑客其它的攻击方式) Dos(拒绝服务攻击)不是DOOS 利用程序漏洞或一对一资源耗尽的Denialof service 拒绝服务 DDo S(分布式拒绝服务) 一对一的攻击完全拼各自的资源 ...

  3. 程序性能分析及性能测试

    这里所说的程序是指对外提供tcp/ip交互协议的服务性程序.网络程序性能分析很重要,比如随着网络请求流量越来越大,我们需要知道已部署的服务能不能满足需求.这里采用对网络服务程序进行建模的方法分析影响程 ...

  4. 2018最新精选的Go框架,库和软件的精选列表 四

    2018最新精选的Go框架,库和软件的精选列表 四 Web框架 完整的堆栈web框架. aah - Go的可扩展,高性能,快速开发的Web框架. Air - Go的理想RESTful Web框架. B ...

  5. 老叶倡议:MySQL压力测试基准值

    通常,我们会出于以下几个目的对MySQL进行压力测试: 1.确认新的MySQL版本性能相比之前差异多大,比如从5.6变成5.7,或者从官方版本改成Percona分支版本: 2.确认新的服务器性能是否更 ...

  6. Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

    一.http_load程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会 ...

  7. Web性能压力测试工具——Siege详解

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

  8. Siege 3.0 Beta2 发布,压力测试工具

    Siege 3.0 Beta2 修复了跟 FTP 协议相关的一些 bug. Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的 ...

  9. HTTP/FTP压力测试工具siege

    HTTP/FTP压力测试工具siege 压力测试可以检测服务器的承载能力.针对HTTP和FTP服务,Kali Linux提供专项工具siege.该工具可以模拟多个用户同时访问同一个网站的多个网页,以检 ...

最新文章

  1. 如何使用Avira Rescue CD清洁感染的PC
  2. android中文转字节数组,如何将Android中的byte []转换为C中的uint8_T数组?
  3. Python学习week2
  4. 《jQuery UI 开发指南》——2.3 tabs ()方法
  5. 1亿中国人已被AI批改过作业
  6. 【linux学习笔记五】帮助命令
  7. NTKO控件安装:“不能装载文档控件,请在检查浏览器的选项中检查浏览器的安全设置”问题
  8. linux audio device driver音频设备驱动
  9. MediaRecorder单独录制影像,不录制音频
  10. cve_2019_0708复现踩坑
  11. linux系统电视u盘安装教程,linux系统U盘安装教程
  12. [bzoj4199][NOI2015]品酒大会
  13. JavaScript实现DoublyLinkedList双链表的算法(附完整源码)
  14. android抽屉效果
  15. 【小5聊】sql server基础之查询经纬度范围,10公里范围的经纬度标注点
  16. 一篇不错的wsl文章
  17. 我的世界我服务器注册密码大全,网易账号密码大全我的世界 | 手游网游页游攻略大全...
  18. HTML基础(三)---- hr水平线
  19. Android画虚线却显示为实线的解决方法
  20. 浏览器被23545等网站劫持,以Chrome为例亲测有效的两个解除劫持的方法

热门文章

  1. python编程-图形打印汇总:心型图案 九九乘法表 三角形 金字塔 圣诞树 倒三角形 菱形
  2. SpringBoot中Kafka的SSL链接
  3. 如何将li的前面那个圆点去掉
  4. Vue3下PostCSS Loader has been initialized using an options that does not match the API schema的问题解决
  5. 集团注册什么品牌企业邮箱好用?适合集团使用的安全企业邮箱有什么?
  6. css3 实现文字渐变
  7. V4L2 摄像头应用
  8. Virtualbox下使用virt-p2v
  9. 东野圭吾梦幻花读后感_《梦幻花》读后感800字
  10. KD tree and Bbf