在本节中,我们将了解可伸缩性测试,它通过增加或减少特定规模(如用户数量)的负载来检查应用程序的性能。
我们还要了解它的需求,可伸缩性测试的目的,可伸缩性测试的类型,可伸缩性测试的先决条件,可伸缩性测试的各种功能,如何执行它,优缺点。
1. 可伸缩性测试简介
另一种类型的性能测试是可伸缩性测试,它属于软件测试的非功能测试。
它用于通过增加或减少称为可伸缩性测试的特定规模的负载来检查应用程序的性能。它在硬件、软件或数据库级别执行。
它被指定为网络、系统、应用程序、产品或流程在修改系统的大小或体积以满足不断增长的需求时正确发挥作用的能力。
在此测试中,测试用例以组织良好的方式设计和实现。它还分析系统、流程或数据库满足向上需求的能力。
例如,网页可伸缩性测试取决于用户数、CPU 使用率、网络使用率。相比之下,Web 服务器的可伸缩性测试取决于处理的请求数。
2. 可伸缩性测试的目标
以下是可伸缩性测试的关键目的:
- 执行可伸缩性测试的主要目标是控制应用程序如何与不断增加的工作负载进行平衡,以及软件产品或系统在何时停止缩放并确定其背后的原因。
-
需要可伸缩性测试来表示软件产品的用户限制。
-
找出客户端降级、最终用户在负载下的参与以及服务器端稳定性。
-
可伸缩性测试的使用将确保软件能够随着工作负载和数据流量的增加而扩展。
3. 为什么我们需要执行可伸缩性测试?
执行可扩展性测试是必需的,因为它可以确保软件或应用程序的均匀运行,同时毫无问题地完成最终用户的要求。
如果我们遇到以下问题,则需要进行可伸缩性测试:
- 万一软件中的任何修改导致我们失败?
-
增强后,软件可以正确有效地工作,以满足用户的要求和期望。
-
软件是否可以根据扩展需求进行生产和改进?
4. 可伸缩性测试的类型
可伸缩性测试分为两部分,如下所示:
向上可伸缩性测试
向上可伸缩性测试用于在特定规模上扩展用户数量,直到我们得到崩溃点。它主要用于确定应用程序的最大容量。
向下可伸缩性测试
另一种类型的可伸缩性测试是向下可伸缩性测试。当负载测试未通过时,我们将使用向下的可伸缩性测试,然后开始减少特定时间间隔内的用户数,直到实现目标。
因此,我们可以通过向下伸缩测试来快速识别瓶颈(bug)。
5. 可伸缩性测试的前提条件
对于可伸缩性测试,可以根据要测试的应用程序类型更改测试策略。
例如,如果数据库与应用程序相关,则测试约束将是数据库和用户数。我们有一些默认的前提条件可用于可伸缩性测试,如下所示:
如果要执行可伸缩性测试,则需要验证负载生成管理器和负载测试主机准备了哪些操作系统。
它用于分析负载测试工具是否允许从多个设备创建负载并从基本点测量负载。
在执行可伸缩性测试之前,我们必须分析虚拟用户和负载测试主机的内存量足够。
在执行可伸缩性测试之前,我们需要分析负载测试主用户和虚拟用户需要哪种类型的 CPU。
6. 可扩展性测试的特点
下面列出了可伸缩性测试的一些重要组件;让我们来看看:
- 吞吐量
-
与许多用户进行性能测量
-
内存使用情况
-
中央处理器使用率
-
网络使用情况
-
响应时间
吞吐量 -
吞吐量功能用于指定应用程序在给定时间内实现的工作量。
-
吞吐量可以从一个应用程序更改为另一个应用程序。
-
例如,在数据库应用程序中,它在单位时间内管理的多个命令中得到维持。相比之下,它在 Web 应用程序中单位时间内处理的用户请求数是统一的。
性能 -
可扩展性测试的下一个功能是性能,它用于检查用户在Web服务器下的重复集体负载和请求以及系统的休息。
-
换句话说,我们可以说应用程序的性能取决于其类型,因为它连续为多个用户进行了测试,可以在没有故障或备份条件的情况下提供支持。
内存使用情况 -
在可伸缩性测试中,内存使用情况是用于维持应用程序执行任务所消耗的内存的资源利用率之一。
-
通常,内存使用量是相对于单位字节计算的。
中央处理器使用率 -
可伸缩性测试下的另一个资源利用率是 CPU 使用率,用于在执行应用程序代码命令时计算 CPU
使用率。
-
通常,CPU 使用率是相对于兆赫兹单位计算的。
网络使用情况 -
它用于承载被测应用程序消耗的带宽。
-
网络使用情况是根据每秒接收的帧数、每秒接收的字节数、每秒接收和发送的段等来计算的。
响应时间 -
这是应用程序响应和用户请求之间用完的时间。
-
换句话说,我们可以说响应时间检查系统或应用程序对用户或其他应用程序请求的响应速度。
-
它可以根据应用程序上的不同用户负载来增强或减少时间。
-
通常,应用程序的响应时间会随着用户负载的增强而减少。
7. 如何执行可伸缩性测试
要执行可伸缩性测试,我们需要按照以下步骤操作:
第1步:评估
在可伸缩性测试的第一步中,我们将评估现有和可预测的未来软件可能增加的潜力。他们还检查可伸缩性测试的标准,并确定执行测试所需的软件工具。
第2步:测试执行
评估后,我们将准备测试计划、测试场景和测试用例,涵盖和分析软件在每次增量开发中的工作情况。
注意:在开发可伸缩性测试时,建议增强以下阶段的负载,以在基本级别到高级阶段测试系统。 |
此外,测试环境要求对每个不同的增强负载保持持久和固定。
第3步:测试开发
之后,我们将设置测试环境,配置实现可伸缩性测试所需的硬件,生成、验证可视化脚本和负载测试方案。
然后,以有组织的方式执行这些测试用例并分析结果。
第4步:日志记录和报告
一旦执行了测试开发,我们将分析记录的结果并构建必要的报告。
8. 可伸缩性测试的优点和缺点
可扩展性测试的优点
可伸缩性测试的优点如下:
- 它有助于操作工具利用率跟踪。
-
使用可伸缩性测试的最重要优势是,我们可以在网络使用情况、响应时间、网络使用情况、CPU 使用情况等方面找出下面的
Web 应用程序限制。
- 如果我们执行可伸缩性测试,我们可以控制特定负载下的最终用户体验。因此,可以更早地采取有用的过程来解决问题并使应用程序更易于访问。
-
及早发现问题可节省时间和金钱。
-
它增强了软件产品对未来开发困难的保证。
- 如果我们在测试阶段确定特定应用程序中多个性能问题的原因,可伸缩性测试将帮助我们节省大量金钱和时间。
-
通常,它包括一组具有不同硬件和软件设置的负载测试,并保持测试环境不变。
可伸缩性测试的缺点
以下是可伸缩性测试的缺点:
- 在可伸缩性测试期间可能会遗漏功能故障。
-
有时,测试环境并不总是与生产环境完全相同。
-
有时,测试运行良好,但在测试阶段失败,因为不正确的测试脚本和测试场景,浪费大量时间进行毫无意义的修改。
-
如果我们使用高级工具进行可扩展性测试,并使用专属测试团队进行性能测试,则会导致项目预算过高。
-
要执行可伸缩性测试,需要高水平的测试知识和技能。
9. 总结
在本教程中,我们了解到可伸缩性测试是非功能测试的一部分,当系统的大小或体积被修改以满足不断增长的需求时,它会测试系统的功能、网络或进程。
对于可伸缩性测试,测试策略与要测试的应用程序类型不同。它用于评估应用程序以停止缩放并确定其背后的原因。
它作为一个操作工具,支持软件应用程序,以满足用户不断增长的需求。
|