负载测试与压力测试

负载和压力测试比较

 

根据定义,负载测试测量系统在预期负载下的性能。

相反,压力测试会使系统过载以找到中断点。

检查差异:

负载与压力测试

 

应力性能测试 负载测试是一种计划测试,用于对系统执行指定数量的请求,以测试系统在特定级别的同时请求下的功能。 负载测试确保 Web 系统可以处理预期的流量,因此有时称为容量测试。 负载测试的目标是证明系统能够以最小到可接受的性能降级来处理预期卷。 测试人员必须将可接受的性能降级阈值定义为最终用户认为可接受的值,以便用户不会从站点中反弹。

压力测试是一种测试,旨在增加系统上超过性能下降点(甚至达到完全失败点)的同时请求数。 如果负载测试(或 API 测试)在并发用户数中达到峰值,则基本压力测试将继续增加系统上的负载,直到资源过载。 这会将系统推入可能失败的状态,以查看系统如何处理它以及系统是否可以执行正常恢复。

在这些负载测试和压力测试的定义中,我们发现它们肯定不是完全独立于彼此的。 通常,在运行负载测试的上限时,您最终可能会有效地运行压力测试,从而推动系统超过可用资源的限制。 此时,您可能会开始看到负载测试中的故障与运行压力测试时通常看到的故障相同。

何时选择负载测试或压力测试

 

负载测试和压力测试之间的一个区别是,您可以将暂停注入负载测试以模拟实际用户流量。 通过压力测试,您可以尽可能快地同时运行用户,以生成压力测试的过多流量。

与压力测试的目标相比,负载测试的目标完全不同。 执行负载测试以确保网站、Web 应用程序或 API 能够一次处理特定数量的用户。 负载测试通常用于容量规划过程中,以确保系统可以处理增长到指定级别的同时流量。

压力测试用于专门推动系统超出其预期容量,以识别开始变慢的组件,识别系统中的瓶颈,并揭示潜在的瓶颈或故障点。

通常用于负载和压力测试:
建立基准绩效指标

负载测试通常作为一系列步骤执行,其中测试系统启动已知由基础结构支持的一组同时用户。 这将建立一组基准性能数据,以在整个测试过程中同时增加用户数。 性能测试可以帮助确定几个不同的基线,例如平均连接速度、平均延迟和下载固定大小的文件的平均时间等。

一旦知道基准性能值,用户数将增加到在示例期间实际预期访问站点的数字。 然后,测试通常会以该静态用户数运行几分钟,以验证系统稳定在新负载级别后网站的稳定性。

虚拟用户

请务必注意,术语基线测试和基准测试通常可以互换使用,但是,这两个术语之间存在差异。 执行基线测试以确保网站或应用程序的性能不会随着时间的推移而降低。 例如,在基线测试期间,将记录性能指标,以便将来更新该应用程序或站点时,工程师可以测试新的性能指标并将其与以前的指标进行比较。 这些基线测试还将包括任何新的代码、软件、硬件和网络更改。 目标是提供一致的应用程序或网站,从而确保为用户提供积极的体验。

基准测试是将应用程序性能与特定的预定义行业或组织标准和要求进行比较的做法。 与基线测试一样,基准测试包括测量和记录硬件、软件和网络条件的性能。 基准测试有助于根据组织自己的要求或针对其他组织来衡量服务质量。 这些指标有助于为组织创建 SLA(服务级别协议),并为用户或客户提供有保证的服务级别。 阅读有关 基线和基准测试的更多信息

在负载测试和压力测试期间建立基线性能指标之间的一个区别是,基线性能和峰值性能之间的差异将有助于确定您是否有适当的系统来处理峰值负载,而在压力测试期间,您更关心的是系统变得紧张的点, 甚至停止正常工作。

负载或压力测试,以识别 Web 应用瓶颈

基于 Web 的应用程序通常在浏览器中运行,并且由于异步性质,如果编程正确,可能会同时处理数百或数千个用户。 如果要在系统容量内生成预期负载,则应用程序的响应时间应保持在生成的准则范围内。 如果你把系统推向这些极限,你就会进入压力测试的领域,故意给系统带来压力,以识别失败的组件(这通常是使用 像JMeter这样的开源工具执行的)。 因此,为识别瓶颈而执行的任何测试通常都被视为压力测试(这与 API 测试和 API 监视不同)。

斯拉报告
负载测试以建立服务级别协议 (SLA)

 

负载测试最好在生产环境中执行,以了解预期用户负载下的平均响应时间。 这些平均响应时间成为可接受的 SLA 的基线。 从这里,您决定根据 SLA 在客户的预期性能方面认为不可接受的其他阈值。

容量规划的负载测试

在 Web 应用程序上生成增加的负载有助于预测将来较重的用户负载的应用程序性能。 如果应用程序在 SLA 参数内响应,则此类测试将被视为容量规划中的成功组件。 如果在测试期间记录的性能指标超出了所需的参数,则当您将系统推送到超出其可用容量时,负载测试可能会变成压力测试。

压力测试 Web 应用程序基础结构

确定基础结构中每个组件将发生故障的点是维护可扩展 Web 应用程序的关键部分。 有效的压力测试允许您通过一系列不同的测试来隔离每个组件,以确定该组件的故障点。 此类测试可能包括:

  • 将所有流量隔离到特定地理区域。
  • 人为限制可用磁盘空间。
  • 反复发送一个特别大的 GET 请求。
  • 限制最大数据连接数。
  • 下载大型图像文件。
  • 反复发送大量写入数据库的密集 POST。

每个测试都旨在强调基础结构的特定组件,以确定故障点、故障率和系统容量的上限。 压力测试可以帮助识别瓶颈,在短暂的紧张负荷,如病毒营销,国际新闻识别和沉重的网上购物日,如黑色星期五。

负载测试和应力测试之间的差异

LoadView 摘要

压力测试通常会使系统的一部分或另一部分达到最大值,最终导致减速,然后崩溃或无响应。 确定系统中哪些组件在测试过程中首先遇到问题非常重要。 因此,我们建议您在执行压力测试时监视多个组件。 值得注意的是,根据环境/系统中使用的应用程序、软件甚至技术,在压力测试期间测量的指标可能会有所不同。 但是,以下列表比较

  • 响应时间。 发送请求后接收响应所需的时间。 这对于测量用户感知的响应时间尤其重要
  • 硬件限制。 这包括监视 CPU 使用率、RAM、磁盘 I/O。 如果响应时间延迟或变慢,这些硬件组件可能是潜在的罪魁祸首。
  • 吞吐量. 在测试期间根据您的带宽级别发送/接收的数据量。
  • 数据库读写。 如果您的应用程序使用多个系统,压力测试可以指示哪个系统或单位是瓶颈。
  • 打开数据库连接。 大型数据库会严重影响性能,减慢响应时间。
  • 第三方内容。 网页和应用程序依赖于许多第三方组件。 压力测试将向您显示哪些可能会影响您的页面或应用程序的性能。

如果您在服务器端没有适当的监控系统,Dotcom-Monitor 平台将提供 性能计数器监控解决方案 ,用于完整的端到端服务器性能监控。 这些性能计数器直接安装在服务器上,用于监视 Windows、Linux 或 SNMP(简单网络管理协议)性能计数器。 此外,还有一个解决方案,用于监控来自您的设备和服务器的任何自定义性能计数器。 有关性能计数器监控的更多信息,请访问我们的性能计数器监控解决方案页面。

这些项目中的任何一个问题可表现为:

  • 减慢第一个数据包响应。
  • GET/POST 请求和响应之间的严重延迟。
  • 比正常页面加载时间长。
  • 网页加载计时。
  • 服务器错误代码返回。

虽然最初可能会在负载测试期间检测到这些相同的问题,但负载测试背后的想法是模拟系统应该能够定期处理的预期负载。 有时,当资源分配给增加的负载时,系统可能会短暂地遇到减速,但在大多数情况下,系统应该能够从初始分配中恢复,并在负载测试下恢复正常性能。

如果负载测试继续检测问题,则需要仔细查看系统性能计数器,以确定减速或故障的根本原因。 这是负载测试成为压力测试时,因为负载意外导致性能问题。 请联系我们的团队,了解 LoadView 平台的演示。 性能工程师将引导您完成整个负载和压力测试过程。 从演示如何为网页或 Web 应用程序方案创建脚本,到配置和启动测试,它们将引导您完成整个过程,并回答您在此过程中可能遇到的任何问题。

今天运行负载或压力测试!

没有信用卡。 没有承诺。 按你走就付。