压力测试


压力测试

在本节中,我们将了解压力测试,它是性能测试的重要组成部分,用于通过施加大于所需负载的负载来检查应用程序的行为。

我们还了解了它的过程,为什么需要进行压力测试,压力测试目的,示例,压力测试的各种特点,优缺点。

压力测试介绍

在软件测试中,压力测试是非功能测试下性能测试的重要组成部分。

压力测试是用于检查超出通常功能限制的软件的可访问性和健壮性的测试。它主要考虑关键软件,但也可用于所有类型的软件应用程序。

它也被称为耐力测试、疲劳测试酷刑测试\

压力测试包括超出标准操作规模测试,反复到一个断点,以获得输出。

它突出了重负载下的错误处理和鲁棒性,而不是常规条件下的正确行为。

换句话说,我们可以说压力测试是用来验证稳定性和

系统的可靠性,并确保系统不会在灾难情况下崩溃。

为了分析系统在极端条件下的工作方式,我们在正常负载之外进行了压力测试

压力测试的目的

使用压力测试的主要目的是实现以下几个方面:

  • 执行压力测试的主要目的是确认软件不会因为缺少磁盘空间、内存和网络请求等计算资源而崩溃。
  • 压力测试的实施证明系统失败并毫不费力地改进,称为可恢复性过程。
  • 我们可以使用压力测试来发现硬件问题、数据损坏问题。
  • 压力测试将帮助我们识别可能在恒定峰值负载中潜入的安全漏洞。
  • 它有助于确定整个极端负载期间软件应用程序的数据完整性,这意味着数据在发生故障后应该处于可靠状态。

压力测试的特点

以下是压力测试的基本特征:

  • 压力测试还确保不可预测的故障不会导致安全问题。
  • 它用于分析系统在极少数情况下的工作情况以及系统发生故障后的行为。
  • 压力测试用于检查系统在崩溃前是否保存了数据。
  • 压力测试保证在系统处于压力下时显示合适的错误消息。

为什么我们需要进行压力测试?

如果遇到以下情况,我们需要进行压力测试:

每当电子商务或在线购物网站在节日期间宣布促销活动时,流量都可能会激增。或者当一篇文章在顶级报纸上被提及时,它的知识会带来意想不到的流量。

如果我们未能协助这种突然的流量,可能会导致利润和地位的损失。因此,在这种情况下,我们需要执行压力测试来整合这种不规则的流量高峰

以下场景也需要进行压力测试:

  • 当系统处于压力下时,它应该显示正确的错误消息。
  • 检查系统是否在异常情况下工作。
  • 如果系统在风险情况下出现故障可能会导致巨大的利润损失。
  • 通过实施压力测试,我们将为极端条件做好准备。

压力测试示例

让我们看一些实时示例,我们可以在其中发现压力测试的用法。

示例 1:电子商务网站/应用程序

纵观新品发布、销售、节假日、促销和节日优惠,电子商务应用往往会在很短的时间内获得大量用户。

示例 2:某个重大/病毒事件发生时的新闻网站

发生重大事件时,新闻网站会崩溃或变慢;例如,当迈克尔杰克逊去世时,最大数量的新闻网站都变慢了,或者其中一些还崩溃了。

为了克服这种情况,我们需要对特定应用程序进行压力测试,并准备在发生任何崩溃或故障时快速恢复。

示例 3:教育委员会的结果网站

在教育委员会的结果网站上进行压力测试很重要。在一些结果的那天,许多学生、用户和申请者将登录到特定的查看他们的成绩。

因此,压力测试的执行有助于识别应用程序的故障,并评估在短时间内出现极限负载或结果出来时的性能和可恢复性。

注意:网站或应用程序的压力测试对于处理如此多的访问者或用户的意外增加非常重要。

压力测试的类型

压力测试可以分为以下几个部分:

压力测试

  • 产品或应用压力测试
  • 服务器-客户端或分发压力测试
  • 分析压力测试
  • 系统压力测试
  • 交易压力测试

产品或应用压力测试

  • 应用或产品压力测试主要是确定软件产品中与网络问题、数据锁定、阻塞和性能瓶颈相关的故障。

服务器-客户端或分布式压力测试

  • 在这种类型的压力测试中,所有与服务器相关的客户端都被测试。
  • 分布式压力测试用于从服务器跨所有客户端执行。
  • 服务器可以与客户端 A 和 B通信,但当客户端 - 服务器系统有压力时,它无法与客户端 C 和 D链接,如下图所示:

压力测试

分析/探索性压力测试

  • 分析性或探索性测试用于执行具有在实际场景中不太可能发生的异常约束的系统。
  • 它主要用于识别少数情况下的错误,例如大量用户同时登录或从网站检索时数据库脱机。

让我们看一些使用这种不规则条件的分析压力测试的例子:

  • 当大量并行用户尝试登录应用程序时。
  • 数据库中的数据量非常大。
  • 当网站试图从前端访问它时,链接到该网站的数据库将关闭。

系统压力测试

  • 它是一种组合测试,用于跨运行在类似服务器上的各种系统执行测试。
  • 使用系统的压力测试,我们可以很容易地发现一个应用程序的数据阻塞另一个应用程序的瓶颈。

交易压力测试

  • 另一种压力测试是事务压力测试,用于在各种应用程序之间实现一个或多个事务。
  • 执行事务压力测试的主要目的是提高系统性能。

压力测试流程/如何进行压力测试

压力测试过程将分为以下几个步骤完成:

压力测试

Step1:检测测试环境

在压力测试的第一步中,我们将确定可用于实现压力测试的网络、软件和硬件配置和工具。

Step 2:查找性能验收标准

在确定测试环境后,我们将找到性能验收标准,这有助于我们对用于测试应用程序在压力下的性能的指标进行分类。

此外,确定压力测试的成功标准,例如,最大负载可以应用于应用程序使其失败。

Step3:规划和设计压力测试

在下一步的压力测试过程中,我们将规划和设计压力测试计划,确定测试场景等。

Step4:配置测试环境

成功创建压力测试计划后,我们将进入下一步,创建测试环境、工具和资源,以便在功能和组件可用于测试时执行每种方法。

Step5:实施测试设计

测试环境配置完成后,我们将开发压力测试,从而使测试设计表现最佳。

Step6:执行测试

在下一步中,我们将执行特定的测试,观察和确认测试以及测试数据和输出收集。

Step7:分析结果

在压力测试过程的最后一步,我们将分析结果,合并并共享各个团队的输出数据。

压力测试工具

众所周知,压力测试性能测试的一部分,用于性能测试的工具可以用于压力测试。 因此,市场上有各种类型的压力测试工具,其中有一些是商业工具和开源工具. 下面列出了一些最常见的压力测试

  • Apache JMeter
  • NeoLoad
  • Stress tester
  • LoadRunner

压力测试的优缺点

优点

执行压力测试的一些重要好处如下:

  • 压力测试表明系统在失败后的行为,并确保系统从崩溃中快速恢复。
  • 执行压力测试最重要的优点是可以使系统以合适的方式在有规律和无规律的条件下工作。
  • 它决定了软件的可扩展性和增强的性能。

缺点

压力测试的一些最常见的缺点如下:

  • 即使在像 JMeter 这样的开源工具中,也需要一个负载测试环境,它应该尽可能接近生产环境设置。
  • 如果我们正在编写压力测试脚本,那么这个人应该对特定工具支持的语言有足够的脚本知识。
  • 如果我们使用压力测试,它将需要额外的资源,这使得这种测试成本更高。
  • 如果我们手动进行压力测试,完成起来就变成了一项繁琐而复杂的任务,也可能不会产生预期的结果。

概述

在本教程中,我们已经了解压力测试用于评估极端情况下的系统。它可以验证系统恢复到正常状态。

它是一种非功能测试,一般在功能测试之后执行

压力测试完全专注于在极端负载情况下测试系统,以检测其断点,并查看在系统无响应时是否显示合适的消息。