什么是可扩展性测试?

在本文中,我们将研究可扩展性测试、不同类型的可扩展性测试、其重要性、特点和属性、先决条件、策略、过程,它与压力测试的区别,以及它的优缺点。

可扩展性测试

可扩展性测试是一种非功能性测试。在此测试中,被测软件产品的性能是根据其扩展或缩减用户请求负载数量和其他性能属性的能力来衡量的。进行可扩展性测试的目的是确保产品有足够的能力来处理预计增加的用户流量、数据负载、交易计数频率等。它基本上是测试系统满足不断增长的需求的能力。可扩展性测试可以在硬件、软件和数据库级别进行。可扩展性测试测试产品在系统规模变化时正确执行功能的能力。

可扩展性测试确定产品停止扩展的点并确定其背后的原因。可伸缩性测试中使用的参数对于每个应用程序都是不同的。例如,网页的可扩展性测试取决于用户数量、CPU 使用率和网络使用率。而 Web 服务器的可扩展性测试取决于系统单位时间内处理的请求数。

可扩展性测试的目标

  • 可扩展性测试的主要目标是确定产品随着工作负载的增长而扩展。

  • 另一个目标是确定产品在用户方面的限制。

  • 另一个目标是确定客户端条件和最终用户在各种负载下对产品的体验。

  • 另一个目标是确定服务器端的健壮性。

可扩展性测试的属性

  • 响应时间 -它是软件产品响应用户请求所花费的时间。响应时间取决于软件产品的用户负载。一般来说,响应时间随着用户负载的增加而减少。响应时间较短的软件产品被认为是性能较高的产品。响应时间决定了服务器在最小负载、阈值负载和最大负载下响应或处理用户对服务器的请求所花费的时间。它有助于确定软件产品出现故障的点。在集群环境中,产品负载分布在多个服务器之间,可伸缩性测试需要测量负载均衡器在服务器之间分布负载的限制。在这样的环境中,必须仔细测量每个单独服务器的响应时间,可扩展性测试需要确保每台服务器的响应时间相同,而不管每台服务器的负载如何。例如,响应时间可以衡量为用户在 Web 浏览器上输入 URL 到网页加载内容所花费的时间。

  • 吞吐量 -它是软件产品每单位时间处理的请求数量的度量。它因产品而异。例如,在 Web 应用程序中,吞吐量是根据每单位时间处理的用户请求来衡量的。另一方面,吞吐量是数据库应用程序根据应用程序每单位时间处理的查询数量来衡量的。软件产品是可扩展的,前提是它为内部应用程序、硬件或数据库上的不同级别的负载提供相同的吞吐量。

  • 性能 -性能是衡量软件产品在没有故障或忙待机情况下可以支持的用户数量的指标。

  • 阈值负载 -它是软件产品处理的具有预期吞吐量的请求数。

  • CPU 使用率 -它是执行软件产品代码指令时 CPU 使用率的度量。它的单位是兆赫兹。一般来说,产品代码优化得越多,观察到的 CPU 使用率就越低。为了最大限度地减少 CPU 使用率,许多企业使用标准的编程实践。例如,去除产品中的死代码,减少线程使用。最小化 CPU 使用率的最佳实践之一是睡眠方法。

  • 内存使用 -它是软件产品在执行任务时消耗的内存的度量。它的单位是兆字节、千兆字节或兆兆字节。如果软件产品使用尽可能少的内存,则该软件产品被认为是可扩展的。一些减少内存使用的最佳编程实践是避免使用冗余循环、减少对数据库的命中、使用缓存、优化 SQL 查询的使用等。 例如,如果存储空间可用于指定数量用户超过内存,开发人员将被迫添加额外的数据库存储来补偿数据丢失。

  • 网络使用 -衡量软件产品消耗的带宽。它的单位是每秒字节数、每秒接收帧数、每秒接收段数、每秒发送段数等。网络使用旨在减少网络拥塞。压缩技术的使用是有助于最大限度地减少网络使用的最佳编程实践。例如,开发人员可以编写代码来处理用户的请求,而不是遵循队列机制来处理用户的请求。在可扩展性测试期间也测试的其他属性包括服务器请求、任务执行时间、加载时间、从数据库获取响应所花费的时间、重启时间、打印时间、会话时间、每单位时间的事务、每单位时间的命中、每单位请求时间等

可扩展性测试程序

  • 定义一个可重复的流程来进行可扩展性测试。

  • 选择可伸缩性测试的标准。

  • 确定执行测试所需的软件工具。

  • 准备测试环境并配置执行测试所需的硬件。

  • 准备测试场景和可扩展性测试。

  • 准备可视化脚本,然后验证它。

  • 准备负载测试的场景,然后验证它们。

  • 执行测试。

  • 评估从测试中获得的结果。

  • 生成测试报告。

可扩展性测试的先决条件

  • 负载分配能力 -分析用于负载测试的工具是否可以从多个设备产生负载,以及是否可以从一个中心点进行控制和测量。

  • 操作系统 -分析负载生成代理和负载测试主机兼容的操作系统。

  • 内存 -分析虚拟用户代理和负载测试主机的内存需求。

  • 处理器 -分析虚拟用户代理和负载测试主机所需的 CPU 类型。

可扩展性测试的测试计划

在创建测试之前,需要制定测试计划。定义明确的测试计划的属性如下 -

  • 脚本步骤 -测试脚本已准备好,并且应该有一个详细的步骤来确定用户执行的操作。

  • 运行时数据 -测试计划应确定与软件产品交互所需的运行时数据。

  • 数据驱动的测试 -对于在运行时具有不同数据的脚本,必须正确了解该数据所需的所有字段。

可扩展性测试与压力测试

可扩展性测试压力测试
Tests the performance of the software product under user request load.测试产品在意外重载下的行为或性能。
Determines the response time of the product under heavy load.测试产品的性能。
Load is gradually varied.负载突然变化。
Determines the threshold load of the product.确定产品是否可以从故障中恢复,以及如何恢复。
Tests CPU usage as well as memory usage.没有测试此类属性。
Tests the robustness on the server-side.在客户端测试健壮性。
Tests user experience under heavy data load.在意外的负载变化下测试用户体验。

可扩展性测试的类型

  • 向上可扩展性测试 -执行此测试以扩展特定规模的用户数量,直到产品崩溃。其主要目标是确定软件产品的最大容量。

  • 向下可扩展性测试 -当负载测试未通过时执行此测试。在此测试中,特定时间间隔内的用户数量会减少,直到实现指定目标。

可扩展性测试的优势

  • 可扩展性测试有助于跟踪操作工具的利用率。

  • 最重要的优势是我们可以根据网络使用情况、响应时间、网络使用情况、CPU 使用情况等来确定 Web 应用程序的限制。

  • 可扩展性测试有助于控制特定负载下的最终用户体验。

  • 它有助于及早解决问题,从而节省时间和金钱。

  • 可扩展性测试使产品更易于访问。

  • 可扩展性测试包括一组具有各种硬件和软件设置的负载测试,并保持测试环境不变。

可扩展性测试的缺点

  • 始终存在丢失功能故障的风险。

  • 测试环境不能总是与生产环境相同。

  • 测试偶尔运行良好,但由于错误的测试脚本和测试场景可能会在测试阶段失败。这会浪费大量时间和金钱进行无用的修改。

  • 在某些情况下,需要高级工具和专门经验丰富的团队进行性能测试,这会导致预算超支。

  • 可扩展性测试需要高水平的专业知识和测试技能和知识。

结论

可扩展性测试是一种非功能性测试,用于确定软件产品是否可以扩展或缩小到不同的属性。可伸缩性测试中使用的属性因产品而异。

可扩展性测试的主要目的是确定产品在最大负载下开始降级的点,并帮助采取措施确保产品具有足够的可扩展性,以适应内部应用程序、硬件和数据库的变化。

如果做得好,可扩展性测试可以帮助确定软件、硬件和数据库性能方面的主要瓶颈。它的一些主要缺点包括其存储限制、数据库大小限制、网络带宽限制和缓冲区空间。

以上是 什么是可扩展性测试? 的全部内容, 来源链接: utcz.com/z/362061.html

回到顶部