耐久性测试(定义、类型、示例)

耐力测试

耐久性测试是一种非功能性测试,在这种测试中,应用程序或软件产品在大量负载下进行大量测试,以估计其在持续使用下的响应和行为。执行耐久性测试的主要原因是确保被测应用程序或软件可以处理扩展负载,而不会缩短其响应时间。

它在性能运行周期的最后阶段执行。这是一个漫长的过程,甚至可以持续一年。它可能包括应用外部负载,如互联网流量、用户操作等。这使得耐久性测试不同于负载测试。

耐力是指容量。因此,耐久性测试有时也称为容量测试。

耐力测试的目的

  • 主要目标是发现内存泄漏。

  • 发现系统在持续使用下的行为或响应方式。

  • 确保系统的响应时间在长时间使用后保持与测试开始时相同或更好。

  • 确定被测系统在满足所有性能目标的同时可以承受的用户/交易数量。

  • 我们还需要管理未来的负载。为此,我们需要了解我们需要什么以及有多少额外的资源来支持未来的使用。耐力测试可帮助我们实现这一目标。此类资源包括处理器容量、磁盘容量、内存使用量、网络带宽等。

  • 它通常通过使系统过载或通过减少一些系统资源然后评估结果来执行。

  • 进行耐久性测试以确保在指定的正常使用期后不会出现内存泄漏和其他错误。

我们在耐力测试中测试什么?

我们在耐力测试中测试以下内容 -

  • 测试内存泄漏- 检查以验证应用程序或软件中是否存在可能导致系统或操作系统崩溃的内存泄漏。

  • 测试系统层之间的连接关闭- 如果系统不同层之间的连接没有关闭,系统可能会崩溃。

  • 测试数据库连接关闭- 此外,如果测试数据库连接没有关闭,系统可能会崩溃。

  • 测试响应时间- 长时间使用后,系统的响应时间可能会延迟。因此,测试应用程序或软件的响应时间变得至关重要。

耐力测试过程

  • 测试环境- 确定执行耐久性测试所需的硬件、软件操作系统。将角色和职责分配给团队成员。在测试执行之前确保环境准备就绪。另外,确定常见的数据库生产规模和年增长率。这是必不可少的,因为我们必须测试应用程序或软件在一两年后将如何响应。

  • 创建测试计划和测试场景- 根据测试的性质,计划您是否需要手动测试、自动化测试或两者的组合。此外,设计测试用例、审查和测试执行。确保在测试计划中包含对系统施加压力的测试、断点测试等。

  • 测试估计- 估计完成测试阶段所需的时间。分析它时要记住所涉及的测试人员的数量和所需的测试周期数。

  • 风险分析- 分析测试过程中涉及的风险,并采取适当的措施来防止它们。根据风险因素确定测试用例的优先级,并确定下面提到的风险以及测试团队在耐久性测试过程中可能面临的问题 -

    • 软件的性能会与时间保持一致吗?

    • 是否还有其他尚未发现的问题,即使是次要问题?

    • 是否有任何尚未解决的外部干扰?

  • 测试时间表- 确定预算,按时交付。在耐久性测试中,大量而自然的事务负载安排被长时间应用于系统。

  • 测试执行- 在这个阶段,我们终于开始了耐久性测试。

  • 测试周期关闭- 在此阶段,我们根据测试计划阶段指定的退出标准关闭测试周期。

耐力测试示例

压力测试会测试软件或应用程序的极限,但耐久性测试会随着时间的推移测试软件或应用程序的极限。

例如,最复杂的问题,如内存泄漏、数据库服务器使用、系统无响应等,都是在软件长时间运行时出现的。忽略或跳过耐久性测试并不是一个明智的决定,因为在部署之前发现此类缺陷的机会非常低。

假设在锁定期间,例如由于 COVID,银行长时间不工作。在此期间,网上银行活动将比其他工作日有所增加。因此,银行系统必须准备好处理和管理意外的大量负载。

耐力测试工具

  • WebLOAD - 此耐久性测试工具由 RadView 开发。该工具专为 Web 应用程序设计,也用于负载测试和性能测试。它与从 Web 协议到企业应用程序的许多技术兼容。WebLOAD 提供与 Jenkins、Selenium 和其他 DevOps(开发和运营)工具的内置集成。

此工具可用作内部部署产品或完全托管的 SaaS 负载测试解决方案。它通过可定制的 Web 仪表板与一系列 Web 协议、移动协议和企业协议兼容。WebLOAD 提供了 Web 应用程序性能的清晰图片,指出了我们在实现负载响应要求的方式中可能出现的问题。

  • LoadComplete - 这是一个易于使用且价格合理的工具,也用于性能测试。它帮助我们为网站和 Web 应用程序创建和执行真实的负载测试。它通过记录用户交互并与数百个虚拟用户进行模拟来帮助创建自动化负载测试。

该工具有助于检查网络服务器在大量负载下的性能。它还有助于确定健壮性和可扩展性。它为我们提供详细的报告,深入了解基础架构、应用程序行为和最终用户的体验。

  • Apache JMeter - 这个开源测试工具是一个 Java 平台应用程序。它主要用作性能测试工具,可以与测试计划集成。它可以加载到服务器或网络中以检查其性能并分析其在不同条件下的功能。

最初,它用于测试 Web 应用程序,但现在它的范围已经扩大。JMeter 在测试 Servlet、Perl 脚本和 JAVA 对象等资源的功能性能方面非常有用。JMeter 需要 JVM 1.4 及更高版本才能运行,并且可以在 Unix 和 Windows 操作系统中运行。

  • LoadRunner - Micro Focus 的这款产品用于性能测试。它对于低估和确定软件或应用程序的性能非常有用。

LoadRunner 可以同时创建和管理数千个用户。它还有助于收集与基础设施相关的性能所需的信息。它由不同的工具组成,例如虚拟用户生成器、控制器、负载生成器和分析。

  • Appvance - 该工具是第一个统一的测试自动化平台。它消除了阻碍 DevOps 团队的传统 QA 工具造成的冗余。它提供与 Jenkins、Hudson、Rally、Bamboo、Jira 等的集成。它还兼容 Selenium、JMeter、Junit、Jython 等。

  • LoadUI - 这个开源工具允许我们执行复杂的负载测试并通过拖动不同的组件来检查性能。使用 LoadUI,我们甚至可以在执行它们时创建和更新测试用例。此工具支持 Windows、Linux 和 Mac OS。它还帮助我们测试 API 的速度和可扩展性。

它的一些功能包括 -

  • 基于云的负载测试

  • 并行负载测试

  • 服务器监控

  • 重用功能测试

  • 分布式负载生成器

  • 隔离负载测试

  • 端点负载测试

  • OpenSTA - 此基于 GUI 的工具用于对 Web 服务器进行基准测试。它可以执行带有性能测量的 HTTP 和 HTTPS 重负载测试。它是一个开源工具,可在 Windows 操作系统上运行。

耐力测试的优势

  • 它有助于确定系统可以处理多少负载。

  • 它提供可用于验证和改进基础设施要求的准确数据。

  • 它发现系统长时间运行后可能出现的性能问题。

  • 它确保软件在很短的时间内出现巨大负载时仍然可用。

  • 它还用于检查长时间使用后是否有任何性能下降。

耐力测试的缺点

  • 很难确定值得施加多少负载。

  • 如果测试环境没有保持隔离,它可能会导致网络或软件故障,从而可能导致严重中断。

  • 系统压力过大可能会导致永久性数据丢失或数据损坏。

  • 即使在移除负载后,资源使用率仍然很高。

  • 某些应用程序元素可能没有响应。

  • 异常,如果未处理,可能会被最终用户观察到。

以上是 耐久性测试(定义、类型、示例) 的全部内容, 来源链接: utcz.com/z/345704.html

回到顶部