Siege 是一个开源回归测试和基准测试实用程序。它可以使用用户定义的模拟用户数量对单个 URL 进行压力测试,也可以将多个 URL 读入内存并同时对它们进行压力测试。该程序报告记录的命中总数、传输的字节数、响应时间、并发性和返回状态。 Siege 支持 HTTP/1.0 和 1.1 协议、GET 和 POST 指令、cookie、事务日志和基本身份验证。其功能可根据每个用户进行配置。
大多数功能都可以使用命令行选项进行配置,其中还包括默认值,以最大限度地减少程序调用的复杂性。 Siege 允许您对具有 n 个用户的 Web 服务器施加 t 次压力,其中 n 和 t 由用户定义。它记录测试的持续时间以及每笔交易的持续时间。它报告事务数、经过的时间、传输的字节数、响应时间、事务速率、并发性以及服务器响应 OK 的次数(即状态代码 200)。
Siege 是由 Jeffrey Fulmer 在担任 Armstrong World Industries 网站管理员时设计和实现的。它部分模仿了 Lincoln Stein 的酷刑.pl,其数据报告几乎相同。但是torture.pl 不允许同时强调多个URL;出于这种需要,围攻诞生了……
当 HTTP 服务器被该程序攻击时,它被称为“受到围攻”。
Siege 是为 Web 开发人员和 Web 系统管理员编写的。它允许这些人在胁迫下测试他们的程序和系统。作为网络专业人士,您对产品的完整性负责,但您无法控制谁访问它。流量高峰随时可能发生。你怎么知道你是否准备好?
《围攻》将允许您对这些程序施加压力,以便您更好地了解它们可以承受的负载。如果您的网站当前峰值为 250 个并发事务,那么您会睡得更好,因为您知道您的网站可以承受 400 个并发事务的重量。
事务的特点是服务器为客户端打开套接字、处理请求、通过线路提供数据并在完成后关闭套接字。值得注意的是,人类互联网用户需要时间来消化返回给他们的数据。围攻用户则不然。在实践中,我发现 400 个同时 siege 用户的数量至少是真实互联网会话数量的五倍。这就是为什么 siege 允许你设置延迟 ( --delay=NUM )。设置后,每个攻城用户都会休眠 1 到 NUM 之间的随机秒数。通过服务器日志,您应该能够获得在页面上花费的平均时间。建议您在模拟互联网活动时使用该数字来计算延迟。
最新版本的siege可以通过匿名FTP获取:http://download.joedog.org/siege/siege-latest.tar.gz
源存储库位于 GitHub 上: git clone https://github.com/JoeDog/siege.git
您可以在浏览器中查看:https://github.com/JoeDog/siege
更新和公告通过 JoeDog 分发:http://www.joedog.org/
Siege 是使用 GNU autoconf 构建的。如果您熟悉 GNU 软件,那么您应该可以轻松安装 siege 请参阅安装文件以获取更多详细信息。
要启用 HTTPS 支持,您必须在系统上安装 openssl 和 openssl-devel。
要启用 gzip 传输编码,您需要在系统上安装 zlib 和 zlib-devel。
所有先决条件必须在编译时安装。如果在编译 siege 后添加库,则必须再次运行 ./configure、make 和 make install。
围攻先决条件不是依赖项。如果这些库不存在,应用程序仍将编译并运行。它根本不包含这些功能。
文档可在手册页 siege(1)layingsiege(1) 中找到,该发行版中包含一个 html 手册:manual.html
有关 siege 的完整文档可以在 www.joedog.org 上找到
请查阅文件 COPYING 以获取完整的许可证信息。
版权所有 (C) 2000-2023,作者:Jeffrey Fulmer [email protected]
允许任何人在任何媒介上制作或分发收到的本文档的逐字副本,前提是保留版权声明和本许可声明,从而允许收件人依次重新分发。
在上述条件下,允许分发本文档或其部分的修改版本,前提是这些版本带有显着的通知,说明最后更改者。
此外,作为特殊例外,版权所有者允许在每个单独的源文件中描述的特定条件下将该程序的部分代码与 OpenSSL 库链接,并分发包括两者的链接组合。
对于除 OpenSSL 之外使用的所有代码,您必须在所有方面遵守 GNU 通用公共许可证。如果您修改带有此例外的文件,您可以将此例外扩展到您的文件版本,但您没有义务这样做。
如果您不想这样做,请从您的版本中删除此例外声明。如果你从程序的所有源文件中删除这条异常语句,那么这里也删除它。