首页 > 其他分享 >(总结)Web性能压力测试工具之Siege详解

(总结)Web性能压力测试工具之Siege详解

时间:2023-06-08 21:05:12浏览次数:44  
标签:bin Web Siege siege usr 测试工具 100 txt local


PS:Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。siege可以从您选择的预置列表中请求随机的URL。所以siege可用于仿真用户请求负载,而ab则不能。但不要使用siege来执行最高性能基准调校测试,这方面ab就准确很多。

Siege官网:http://www.joedog.org/
Siege下载:wget http://www.joedog.org/pub/siege/siege-latest.tar.gz

解压并安装:

cd /root/
rz
tar -zxvf siege-2.72.tar.gz
cd siege-2.72
./configure --prefix=/usr/local/siege --mandir=/usr/local/man --with-ssl=/usr/local/ssl
mkdir -p /usr/local/siege/etc/
mkdir -p /usr/local/siege/var/
make
make install

创建.siegec.config配置文件到当前用户的家目录下
/usr/local/siege/bin/siege.config
安装完成


查看配置文件
/usr/local/siege/bin/siege -C

CURRENT  SIEGE  CONFIGURATION
JoeDog/1.00 [en] (X11; I; Siege 2.72)
Edit the resource file to change the settings.
----------------------------------------------
version:                        2.72
verbose:                        false
debug:                          false
protocol:                       HTTP/1.1
connection:                     close
concurrent users:               15
time to run:                    n/a
repetitions:                    n/a
socket timeout:                 30
delay:                          1 sec
internet simulation:            false
benchmark mode:                 false
failures until abort:           1024
named URL:                      none
URLs file:                      /usr/local/siege/etc/urls.txt
logging:                        true
log file:                       /usr/local/siege/var/siege.log
resource file:                  /root/.siegerc
timestamped output:             false
comma separated output:         false
allow redirects:                true
allow zero byte data:           true
allow chunked encoding:         true
proxy auth:                     
www auth:  

参数详解:

-C,或–config 在屏幕上打印显示出当前的配置,配置是包括在他的配置文件$HOME/.siegerc中,可以编辑里面的参数,这样每次siege 都会按照它运行.
-v 运行时能看到详细的运行信息
-c n,或–concurrent=n 模拟有n个用户在同时访问,n不要设得太大,因为越大,siege 消耗本地机器的资源越多
-i,–internet 随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),当urls.txt存在是有效
-d n,–delay=n hit每个url之间的延迟,在0-n之间
-r n,–reps=n 重复运行测试n次,不能与 -t同时存在
-t n,–time=n 持续运行siege ‘n’秒(如10S),分钟(10M),小时(10H)
-l 运行结束,将统计数据保存到日志文件中siege .log,一般位于/usr/local/var/siege .log中,也可在.siegerc中自定义
-R SIEGERC,–rc=SIEGERC 指定用特定的siege 配置文件来运行,默认的为$HOME/.siegerc
-f FILE, –file=FILE 指定用特定的urls文件运行siege ,默认为urls.txt,位于siege 安装目录下的etc/urls.txt
-u URL,–url=URL 测试指定的一个URL,对它进行”siege “,此选项会忽略有关urls文件的设定

urls.txt文件:是很多行待测试URL的列表以换行符断开,格式为:
[protocol://]host.domain.com[:port][path/to/file]

用法举例:

siege -c 300 -r 100 -f url.txt

说明:-c是并发量,-r是重复次数。url.txt就是一个文本文件,每行都是一个url,它会从里面随机访问的。

url.txt内容:


http://192.168.80.166/01.jpg

http://192.168.80.166/02.jpg

http://192.168.80.166/03.jpg

http://192.168.80.166/04.jpg

http://192.168.80.166/05.jpg

http://192.168.80.166/06.jpg


如图所示:

(总结)Web性能压力测试工具之Siege详解_post

结果说明:

** SIEGE 2.72
 ** Preparing 300 concurrent users for battle.
 The server is now under siege.. done. Transactions: 30000 hits //完成30000次处理
 Availability: 100.00 % //100.00 % 成功率
 Elapsed time: 68.59 secs //总共使用时间
 Data transferred: 817.76 MB //共数据传输 817.76 MB
 Response time: 0.04 secs //响应时间,显示网络连接的速度
 Transaction rate: 437.38 trans/sec //平均每秒完成 437.38 次处理
 Throughput: 11.92 MB/sec //平均每秒传送数据
 Concurrency: 17.53 //实际最高并发连接数
 Successful transactions: 30000 //成功处理次数
 Failed transactions: 0 //失败处理次数
 Longest transaction: 3.12 //每次传输所花最长时间
 Shortest transaction: 0.00 //每次传输所花最短时间


50个用户(每次并发量,注意不是每秒并发量) 重复100次 共产生 50 * 100 = 5000个请求
/usr/local/siege/bin/siege -c 50 -r 100  https://www.abc.com/fcgi-bin/rs/

50个用户 重复100次 发送GET参数
/usr/local/siege/bin/siege -c 50 -r 100  https://www.abc.com/fcgi-bin/rs/?name=zhangsan

50个用户 重复100次 发送POST参数 (注意引号)
/usr/local/siege/bin/siege -c 50 -r 100  "https://www.abc.com/fcgi-bin/rs/ POST name=zhangsan"

50个用户 重复100次 发送POST参数(从文件中读取)
/usr/local/siege/bin/siege -c 50 -r 100  "https://www.abc.com/fcgi-bin/rs/ POST < /root/ab_test/post.xml"

另外还有发送时间参数等
详情请man 或 siege -h


标签:bin,Web,Siege,siege,usr,测试工具,100,txt,local
From: https://blog.51cto.com/u_16131207/6443261

相关文章

  • webservice: Could not initialize Service NoSuchMethodException getPortClassMap()
    webservicejaxws webservice中碰到的问题:CouldnotinitializeServiceNoSuchMethodExceptiongetPortClassMap()情况如下:A应用是用jaxws编写的webservice客户端,单独运行该客户端成功。B应用是基于xfire的webservice服务,在B中调用A,结果在构造一个Service类的似乎出了上......
  • 2023春招:Javaweb面试锦囊
    cookie和session的区别?(必会)存储位置不同cookie存放在客户端电脑,是一个磁盘文件。Ie浏览器是可以从文件夹中找到。session是存放在服务器内存中的一个对象。chrome浏览器进行安全处理,只能通过浏览器找到。Session是服务器端会话管理技术,并且session就是cookie实现的。......
  • web基础漏洞-sql注入
    1、介绍sql注入,是用户提交的数据,服务端接收后未经过严格检查,将其直接拼接到sql语句中,交给sql应用执行,超出了开发者预期的sql语句结构,从而造成危害。2、详解(1)从数据来说,任何前端提交的数据,都有可能成为sql注入的参数。包括get、post、及其它请求方法,包括url、请求头部和请求体......
  • .net WebUploader 分片上传
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传  可以带参数        [HttpPost("upload")]        publicJsonResultuploadProject(I......
  • 如何在.net6webapi中实现自动依赖注入
    IOC/DIIOC(InversionofControl)控制反转:控制反正是一种设计思想,旨在将程序中的控制权从程序员转移到了容器中。容器负责管理对象之间的依赖关系,使得对象不再直接依赖于其他对象,而是通过依赖注入的方式来获取所需的资源。ID(DependencyInjection)依赖注入:他是IOC的具体实现方式之......
  • web接收websocket
    data(){return{websock:null,wsuri:"ws://192.168.2.22:8025/test/fff",//WebSocket的后台地址actiones:{ssid:"fff"},//传入后台的数据};},created(){this.initWebSocket();//开启WebSocket},destroyed(......
  • zabbix--独立部署zabbix-web
    迁移yum部署的zabbix组件zabbix-web背景描述:业主对项目生产环境所有服务器进行了漏洞扫描,结果zabbix监控服务器扫描出大量php和apache的漏洞。原因分析:​由于我们zabbix服务器上面只是部署了zabbix相关的服务,没有运行其它服务,故排除为zabbix-web服务依赖php和apache。官方默......
  • 小治同学的JAVAWEB学习笔记-Junit&反射&注解
    Junit单元测试Junit使用:白盒测试 步骤 1.定义一个测试类(测试用类) 建议: 测试类名:北侧是的类+Test 包名:XXX.XXX.XX.Test 2.定义测试方法:可以独立运行 建议: 方法名:test测试的方法名 返回值void 参数列表空参 3.给方法加@Test 判定结果 1.红......
  • [转]前端-WebAPI接口-FormData对象的使用(模拟表单用于发送数据及上传文件)
    一、概述FormData对象的使用:用一些键值对来模拟一系列表单控件:即把form中所有的元素的name与value组成一个queryString。异步上传二进制文件。二、使用创建一个空对象实例。 javascript复制代码varmyform=newFormData();使用已有的表单来初始化 ht......
  • Web.xml 4.0
    Web.xml4.0<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoc......