Siege工具的使用
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工具的使用相关推荐
- 测试服务器并发量和承载力(压力测试)
服务器压力测试工具 你可以使用任何基准测试工具来验证这个应用的性能,不过我们使用最最最优秀的Siege utility工具进行测试. 首先你需要一个linux系统 安装siege工具 代码如下: 切换 ...
- 渗透测试-----9-拒绝服务(黑客其它的攻击方式)
拒绝服务(黑客其它的攻击方式) Dos(拒绝服务攻击)不是DOOS 利用程序漏洞或一对一资源耗尽的Denialof service 拒绝服务 DDo S(分布式拒绝服务) 一对一的攻击完全拼各自的资源 ...
- 程序性能分析及性能测试
这里所说的程序是指对外提供tcp/ip交互协议的服务性程序.网络程序性能分析很重要,比如随着网络请求流量越来越大,我们需要知道已部署的服务能不能满足需求.这里采用对网络服务程序进行建模的方法分析影响程 ...
- 2018最新精选的Go框架,库和软件的精选列表 四
2018最新精选的Go框架,库和软件的精选列表 四 Web框架 完整的堆栈web框架. aah - Go的可扩展,高性能,快速开发的Web框架. Air - Go的理想RESTful Web框架. B ...
- 老叶倡议:MySQL压力测试基准值
通常,我们会出于以下几个目的对MySQL进行压力测试: 1.确认新的MySQL版本性能相比之前差异多大,比如从5.6变成5.7,或者从官方版本改成Percona分支版本: 2.确认新的服务器性能是否更 ...
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
一.http_load程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会 ...
- Web性能压力测试工具——Siege详解
Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行. ...
- Siege 3.0 Beta2 发布,压力测试工具
Siege 3.0 Beta2 修复了跟 FTP 协议相关的一些 bug. Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的 ...
- HTTP/FTP压力测试工具siege
HTTP/FTP压力测试工具siege 压力测试可以检测服务器的承载能力.针对HTTP和FTP服务,Kali Linux提供专项工具siege.该工具可以模拟多个用户同时访问同一个网站的多个网页,以检 ...
最新文章
- 如何使用Avira Rescue CD清洁感染的PC
- android中文转字节数组,如何将Android中的byte []转换为C中的uint8_T数组?
- Python学习week2
- 《jQuery UI 开发指南》——2.3 tabs ()方法
- 1亿中国人已被AI批改过作业
- 【linux学习笔记五】帮助命令
- NTKO控件安装:“不能装载文档控件,请在检查浏览器的选项中检查浏览器的安全设置”问题
- linux audio device driver音频设备驱动
- MediaRecorder单独录制影像,不录制音频
- cve_2019_0708复现踩坑
- linux系统电视u盘安装教程,linux系统U盘安装教程
- [bzoj4199][NOI2015]品酒大会
- JavaScript实现DoublyLinkedList双链表的算法(附完整源码)
- android抽屉效果
- 【小5聊】sql server基础之查询经纬度范围,10公里范围的经纬度标注点
- 一篇不错的wsl文章
- 我的世界我服务器注册密码大全,网易账号密码大全我的世界 | 手游网游页游攻略大全...
- HTML基础(三)---- hr水平线
- Android画虚线却显示为实线的解决方法
- 浏览器被23545等网站劫持,以Chrome为例亲测有效的两个解除劫持的方法
热门文章
- python编程-图形打印汇总:心型图案 九九乘法表 三角形 金字塔 圣诞树 倒三角形 菱形
- SpringBoot中Kafka的SSL链接
- 如何将li的前面那个圆点去掉
- Vue3下PostCSS Loader has been initialized using an options that does not match the API schema的问题解决
- 集团注册什么品牌企业邮箱好用?适合集团使用的安全企业邮箱有什么?
- css3 实现文字渐变
- V4L2 摄像头应用
- Virtualbox下使用virt-p2v
- 东野圭吾梦幻花读后感_《梦幻花》读后感800字
- KD tree and Bbf