可伸缩性测试

2025年3月17日 | 阅读 7 分钟

在本节中,我们将了解可伸缩性测试,它通过在特定规模(如用户数量)上增加或减少负载来检查应用程序的性能。

我们还将学习其需求、可伸缩性测试的目的、可伸缩性测试的类型、可伸缩性测试的先决条件、可伸缩性测试的各种功能、如何执行它、优缺点

可伸缩性测试简介

可伸缩性测试性能测试的另一种类型,属于非功能性测试软件测试 范畴。

它用于通过在称为可伸缩性测试的特定规模上增加或减少负载来检查应用程序的性能。它在硬件、软件或数据库级别执行。

它被定义为网络、系统、应用程序、产品或过程在为了满足不断增长的需求而对系统的大小或卷进行修改时能够正常运行的能力。

在此测试中,测试用例以有组织的方式进行设计和实施。它还分析系统、过程或数据库满足不断增长需求的能力。

例如,一个网页的可伸缩性测试取决于用户数量、CPU 使用率、网络使用率。相比之下,Web 服务器的可伸缩性测试取决于处理的请求数量。

可伸缩性测试的目标

以下是可伸缩性测试的关键目的

  • 进行可伸缩性测试的主要目标是控制应用程序如何与不断增加的工作负载平衡,软件产品或系统停止扩展的点以及识别其原因。
  • 可伸缩性测试需要明确软件产品的用户限制。
  • 以找出客户端降级、负载下的最终用户参与度和服务器端稳定性。
  • 可伸缩性测试的使用将确保软件能够随着工作负载和数据流量的增加而扩展。

我们为什么需要执行可伸缩性测试?

需要执行可伸缩性测试,因为它确保软件或应用程序在不出现任何问题的情况下完成最终用户的需求,并能正常运行。

如果我们遇到以下问题,则需要可伸缩性测试

  • 软件的任何修改是否会导致其失败?
  • 增强后,软件是否正常且高效地运行,满足用户的需求和期望?
  • 软件是否能够根据扩展的需求进行生产和改进?

可伸缩性测试的类型

可伸缩性测试分为两部分,如下所示

  • 向上可伸缩性测试
  • 向下可伸缩性测试
Scalability Testing

向上可伸缩性测试

向上可伸缩性测试用于在特定规模上扩展用户数量,直到达到崩溃点。它主要用于识别应用程序的最大容量

向下可伸缩性测试

另一种可伸缩性测试是向下可伸缩性测试。当负载测试未通过时,我们将使用向下可伸缩性测试,然后开始以特定间隔减少用户数量,直到达到目标。

因此,通过执行向下可伸缩性测试,我们可以快速识别瓶颈(bug)。

可伸缩性测试的先决条件

对于可伸缩性测试,测试策略可以根据被测应用程序的类型进行更改。

例如,如果数据库与应用程序相关,则测试约束将是数据库和用户数量。我们有一些默认的可伸缩性测试先决条件,如下所示

Scalability Testing
  • 操作系统

如果要执行可伸缩性测试,我们需要验证由负载生成管理器和负载测试主控器准备了哪些操作系统。

  • 负载分发能力

它用于分析负载测试工具是否允许从多个设备创建负载,并在一个关键点进行测量。

  • 内存

在执行可伸缩性测试之前,我们必须分析虚拟用户和负载测试主控器需要多少内存。

  • 处理器

在执行可伸缩性测试之前,我们需要分析负载测试主控器和虚拟用户需要哪种 CPU。

可伸缩性测试的功能

以下列出了一些可伸缩性测试的重要组成部分;让我们逐一查看

  • 吞吐量
  • 多用户下的性能测量
  • 内存使用
  • CPU 使用率
  • 网络使用率
  • 响应时间
Scalability Testing

吞吐量

  • 吞吐量功能用于指定应用程序在给定时间内完成的工作量。
  • 吞吐量可能因应用程序而异。
  • 例如,在数据库应用程序中,它通过每单位时间处理的命令数来维持。相比之下,在 Web 应用程序中,它通过每单位时间处理的用户请求数来维持。

性能

  • 可伸缩性测试的下一个功能是性能,用于在Web 服务器系统响应下检查用户重复累积的负载和请求。
  • 换句话说,我们可以说应用程序的性能取决于其类型,因为它会持续对多个用户进行测试,这些用户可以在不发生故障或备份的情况下进行支持。

内存使用

  • 在可伸缩性测试中,内存使用率资源利用率之一,用于维持应用程序执行任务所需的内存。
  • 通常,内存使用率根据单位字节计算。

CPU 使用率

  • 可伸缩性测试下的另一个资源利用率CPU 使用率,用于计算执行应用程序代码命令时的 CPU 利用率。
  • 通常,CPU 使用率根据单位兆赫兹计算。

网络使用率

  • 它用于测量被测应用程序消耗的带宽。
  • 网络使用率根据每秒接收的帧数、每秒接收的字节数、每秒传输和接收的段数等计算。

响应时间

  • 这是应用程序响应和用户请求之间花费的时间。
  • 换句话说,我们可以说响应时间检查系统或应用程序对用户或其他应用程序请求的响应速度。
  • 根据应用程序上的不同用户负载,它可能会增加或减少时间。
  • 通常,应用程序的响应时间会随着用户负载的增加而减小。

如何执行可伸缩性测试

要执行可伸缩性测试,我们需要遵循以下步骤

Scalability Testing

第一步:评估

在可伸缩性测试的第一步中,我们将评估当前和可预见的未来软件的潜在增长潜力。他们还检查可伸缩性测试的标准,并决定执行测试所需的软件工具。

第二步:测试执行

评估后,我们将准备测试计划、测试场景和测试用例,这些将涵盖并分析软件在每个增量开发中的工作情况。

注意:在开发可伸缩性测试时,建议在以下阶段增加负载,以在基础级别到高级级别测试系统。

此外,测试环境在每次不同增强负载下都需要持久且固定。

第三步:测试开发

之后,我们将设置测试环境,配置执行可伸缩性测试所需的硬件,生成并验证可视化脚本和负载测试场景。

然后,以有组织的方式执行这些测试用例并分析结果。

第四步:日志记录和报告

完成测试开发后,我们将分析记录的结果并生成必要的报告。

可伸缩性测试的优缺点

以下是可伸缩性测试的优点和缺点。

可伸缩性测试的优点

可伸缩性测试的优点如下

  • 它有助于有效的工具利用跟踪。
  • 使用可伸缩性测试的最重要优势是,我们可以针对网络使用率、响应时间、网络使用率、CPU 使用率等方面的被测 Web 应用程序限制。
  • 如果执行可伸缩性测试,我们可以控制特定负载下的最终用户体验。因此,可以提前采取有用措施来修复问题,使应用程序更具可访问性。
  • 早期发现问题可以节省时间和金钱。
  • 它增强了对软件产品的信心,以便预见未来的开发困难。
  • 如果在测试阶段识别出特定应用程序中多个性能问题的根本原因,可伸缩性测试将帮助我们节省大量时间和金钱。
  • 通常,它包括一组具有不同硬件和软件设置的负载测试,并保持测试环境不变。

可伸缩性测试的缺点

以下是可伸缩性测试的缺点

  • 在可伸缩性测试过程中可能会错过功能性错误。
  • 有时,测试环境并不总是与生产环境完全相同。
  • 偶尔,测试工作正常,但在测试阶段失败,因为测试脚本和测试场景不正确,这会浪费大量时间进行无谓的修改。
  • 如果我们使用高级可伸缩性测试工具和专业的性能测试团队,这将导致项目预算超支。
  • 执行可伸缩性测试需要高水平的测试知识和技能。

概述

在本教程中,我们了解到可伸缩性测试是非功能性测试的一部分,它在系统大小或卷发生变化以满足不断增长的需求时,测试系统、网络或过程的能力。

对于可伸缩性测试,测试策略因被测应用程序的类型而异。它用于评估应用程序以停止扩展并确定其原因。

它作为一种有效的工具,支持软件应用程序跟上用户不断增长的需求。


下一个主题稳定性测试