性能测试工具 - Siege

news/2024/9/20 5:38:01/文章来源:https://www.cnblogs.com/zhuuque23/p/18326195


在快速发展的技术时代,网站和应用的性能对于用户体验和业务成功至关重要。作为测试工程师,找到高效的性能测试工具显得尤为重要。今天,我们来聊聊一个备受推崇的性能测试工具——Siege。
为什么Siege能够在众多性能测试工具中脱颖而出?它究竟有哪些独特之处,能帮助测试人员高效地进行性能测试?

 

 

 

前言

 


性能测试,作为一个不可或缺的软件质量保证环节,旨在评估和提升产品在各种负载情况下的运行效率、稳定性和响应速度。它不仅仅是发现系统瓶颈,而是通过科学的方法和工具,确保我们的产品在面对大量用户并发访问、大数据处理或高强度运算时,能够保持流畅、稳定和高效。

Siege是一款开源的HTTP负载测试和压力测试工具,具有简单易用的特点。它能够模拟大量用户同时访问网站,帮助我们评估服务器的稳定性和响应速度。以下是Siege的一些核心特点和实际应用案

本文将介绍一款免费的性能测试工具 - Siege,可以进行负载测试和基准测试。

 

简介


Siege是一个http负载测试和基准测试的性能测试工具。它旨在让web开发人员测量他们的代码,看看它在互联网上的加载情况。Siege支持基本身份验证、Cookie、HTTP、HTTPS和FTP协议。它允许用户使用可配置数量的模拟客户端访问服务器,从而来验证并发情况下服务器的性能。

Siege的持续时间是以交易、模拟用户的总数和每个模拟用户重复攻击服务器的次数来衡量的,因此,20个并发用户50次是1000个事务的测试长度。性能指标包括测试经过的时间、传输的数据量(包括请求头)、服务器的响应时间、事务速率、吞吐量、并发性和返回OK的次数,这些指标在每次运行结束时都会被量化并报告。

可用于在压力条件下对Web服务器的性能进行测量。它的评估依据包括传输数据量、服务器的响应时间、事务处理速率、吞吐量、并发性和程序正常返回的时间。Siege提供三种操作模式:回归测试,网络模拟测试和暴力测试。

平台支持:

Siege是在GNU/Linux上编写的,并已成功移植到AIX、BSD、HP-UX和Solaris。它可以在大多数System V UNIX变体和大多数较新的BSD系统上编译。由于Siege依赖于微软不支持的POSIX.1b功能,因此它无法在Windows上运行。当然,你可以使用Siege来测试Windows服务器。

官方网址:https://www.joedog.org/siege-home/

 

 

 

安装


1、安装包下载地址https://download.joedog.org/siege/

例如下载siege-4.1.6.tar.gz版本,之后依次进行解压缩、编译、安装等操作。

tar -xvf siege-4.1.6.tar.gz
cd siege-4.1.6
./configure
make
make install

 

2、Mac环境下安装:

brew install siege

 


 

快速上手

 


安装完成后,查看安装是否成功,可以直接在终端输入siege命令即可。

可以看到列出了参数使用信息。

 

 

参数详解:

 1 -V, --version VERSION,打印版本号。
 2 -h, --help HELP,打印此部分。
 3 -C, --config CONFIGURATION,显示当前配置。
 4 -v, --verbose VERBOSE,将通知打印到屏幕上。
 5 -q, --quiet QUIET,关闭详细功能并抑制输出。
 6 -g, --get GET,下拉HTTP请求头并显示交易,非常适合应用程序调试。
 7 -p, --print PRINT,就像GET一样,只打印整页。
 8 -c, --concurrent=NUM 并发用户,默认值为10。
 9 -r, --reps=NUM REPS,运行测试的次数,不能与-t同时存在。
10 -t, --time=NUMm 定时测试,其中“m”是修饰符S、M或H,例如:--time=1H,1小时测试。
11 -d, --delay=NUM 时间延迟,每次请求前的随机延迟。
12 -b, --benchmark 基准测试:请求之间没有延迟。
13 -i, --internet 互联网用户模拟,随机点击网址。
14 -f, --file=FILE FILE,选择一个特定的URL文件。
15 -R, --rc=FILE RC,指定siegerc文件。
16 -l, --log[=FILE] 日志到文件。如果未指定FILE,使用默认值:PREFIX/var/siege.log。
17 -m, --mark="text" MARK,用字符串标记日志文件。在.001和数字之间(不计入统计数据)。
18 -H, --header="text" 在请求中添加一个请求头(可以是多个)。
19 -A, --user-agent="text" 在请求中设置用户代理。
20 -T, --content-type="text" 设置请求中的内容类型。
21 -j, --json-output JSON OUTPUT,将最终统计数据以JSON格式打印到stdout。
22 --no-parser NO PARSER,关闭HTML页面解析器。
23 --no-follow NO FOLLOW,不关注HTTP重定向。

 

1、终端输入负载命令

 

例如对URL进行并发数3个,执行2次的负载测试。

siege -c 3 -r 2 https://www.httpbin.org/get

 

2、执行结果

 1 总共测试次数:6次点击
 2 成功次数百分比:100.00%
 3 总共耗时多少秒:2.78秒
 4 总共传输数据:0.00 MB
 5 响应时间:1.27秒
 6 平均每秒处理请求数:2.16转/ 7 吞吐量:0.00 MB/ 8 最高并发:2.74
 9 成功的请求数:6
10 失败的请求数:0
11 每次传输所花最长时间:1.55
12 每次传输所花最短时间:0.86

 

 

在使用Siege进行性能测试的过程中,结合优秀的学习资源和工具能显著提升测试效果。推荐一些实用的教程和书籍,如《Web性能权威指南》和《性能测试工具大全》。此外,可以结合Jenkins等持续集成工具,将Siege集成到自动化测试流程中,进一步提高测试效率。

Siege作为一款强大且易用的性能测试工具,凭借其高效的并发用户模拟和详尽的测试报告,赢得了众多测试人员的青睐。通过使用Siege,企业能够更好地识别和解决性能问题,确保在高负载情况下依然能够为用户提供稳定的服务。

性能测试不仅仅是发现问题,更是提升用户体验的重要手段。Siege,以其卓越的性能和易用性,成为每一位测试工程师手中的利器,让我们在性能优化的道路上,走得更远,更稳。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/772165.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024暑假集训测试12

前言比赛链接。T2 其实和货车运输这题差不多但是由于给定图为树的部分分都没想出来压根没想到重构树,感觉不太应该,思路还是不清晰,赛时没有拿到那个部分分的,因为拿到的都顺着推出正解了;T3 是道黑,赛时 \(A,B\) 循环输出能拿到 \(40\) 分,赛后重测了;T4 题都看不懂。…

中大企业如何选择高效的缺陷管理系统?

国内外主流的10款中大型企业使用的缺陷管理系统对比:PingCode、Worktile、禅道云、Testin、FineReport、华为DevCloud、Jira、Bugzilla、Redmine、Trac。在选择适合中大型企业的缺陷管理系统时,关键的挑战在于找到一个既能满足独特业务需求,又能提供可扩展性和高效率的解决方…

暑假集训CSP提高模拟8

T2 赛时想法是维护\(m\)个并查集,二分答案,然后比较祖先是否相同,\(O(mlogn+qmlogn)\)的复杂度,而且内存开不下,只拿\(20pts\)点击查看代码 #include <bits/stdc++.h> #define ll long long #define pb push_back using namespace std; const int N = 1e5+5; vector <…

java位运算

位运算符:针对二进制的值补码形式进行计算的 & | ^(相同为0,不同为1) ~ << >> >>>public class WeiOptDemo1 { public static void main(String[] args) { byte a1 = 3; byte b1 = 4;System.out.println(a1 & b1);System.out.println(a1 | b1)…

【Azure APIM】调用APIM的备份接口时候遇见InvalidParameters错误

问题描述 根据官方文档,可以调用REST API来对APIM执行备份操作。要备份 API 管理服务,请发出以下 HTTP 请求: POST https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{s…

kruskal重构树

比较好理解,相当于重建了一个二叉树,所有的父亲节点都为原来图中的边,儿子节点为点。 重构树就可以利用lca求两点间的最大(或者最小)边权以及一些树上操作。较为简单的应用,需要用线段树来维护信息。点击查看代码 #include<bits/stdc++.h> using namespace std;con…

hive03_高级操作

Hive 分区表https://blog.csdn.net/weixin_41122339/article/details/81584110 表在存储时,可以将数据根据分区键的列值存储在表目录的子目录中。这样将数据切分到不同目录存储后,可以加快对分区键字段的查询和过滤速度,通过在查询条件中指定过滤条件,可以只对指定目录的数…

hive02_SQL操作

Hive DDL 操作 操作前需要保证 hive 成功启动: # 启动 HiveServer2 hive --service hiveserver2 & # 启动 MetaStore hive --service metastore &# 进入 hive 命令行界面 beeline -u jdbc:hive2://node03:10000 -n root数据库操作 操作类似于 MySQL 数据库操作。 表基…

【WSL2】在Windows通过自定义域名访问wsl2中的服务

前言目前在windows与windows的wsl系统之间,宿主机无法通过相对较固定的方式来进行网络访问,通常需要使用wsl的ip来访问,而ip可能不是很直观并且可能会有变更,当前教程解决了这个问题,通过hosts映射的方式实现windows宿主机访问wsl服务。 脚本的原理:在linux启动时,执行一…

查看谷歌seo内容插件

SEO META in 1 CLICK 谷歌插件可以查看网站seo内容,包括title description等信息。下载地址:https://www.chajianxw.com/developer/14081.html 下载完解压之后打开谷歌扩展程序拖入即可。 使用方式:打开需要查看的网站对应页面,加载完点击插件图标即可。

Kruskal 重构树

算法介绍 Kruskal 重构树用于快速判断节点的连通性. 考虑到,假如两个节点是联通的,则他们之间总会有一条边被选入最小生成树内,因此他们在最小生成树内也是联通的. 也就是说,我们可以通过求最小生成树来减少我们判断联通需要的边数. Kruskal 重构树的思想是这样的:假如有一…