当前位置: 首页 > 质量专栏 > 性能测试的混合方法
性能测试的混合方法
2023-08-31 浏览次数778

  Web 性能的基本原理强调,在大多数网页中,用户接收响应所需时间的一小部分(大约 10-20%)用于将 HTML 文档从 Web 服务器传输到浏览器。相比之下,用户响应时间的大部分(大约 80-90%)都用在网站的前端。

  关于性能测试,一种常见的做法通常是对后端服务器进行负载测试。很明显,一旦我们优化了服务器和数据库,我们的应用程序就会展现出良好的性能。

  我们的服务器已响应特定请求这一事实并不能确保这些响应对网页上的用户立即可见。许多变量在前端性能中发挥着关键作用,强调了彻底测试以确保最佳用户体验的重要性。

  一、什么是混合方法?

  进行性能测试的混合方法可以让测试人员从一开始就发现软件系统运行情况的问题。

  他们可以确保软件应用程序满足其预期的性能目标。当人们实际使用软件时,它也非常擅长降低出现性能问题的机会。发生这种情况是因为测试创建了类似于现实世界中发生的情况,但在安全且受控的环境中。

  二、后端性能:揭开基础

  当我们谈论后端性能测试时,我们针对的是应用程序的核心基础设施。这可能包括微服务、数据库和其他隐藏组件。这不仅仅是响应时间的问题;后端性能体现了可扩展性、可用性、弹性、可靠性和弹性。

  让我们更深入地研究其中的一些属性:

  1、可扩展性:可扩展性衡量应用程序调整硬件或软件资源以管理使用波动的能力。它确保您的系统可以处理增加或减少的负载。

  2、弹性:弹性反映了系统自动扩展以满足用户需求的能力。它确保您的应用程序可以动态适应变化的流量。

  3、弹性:弹性涉及系统在发生故障时仍保持功能的能力。它关系到您的应用程序对不良事件做出反应并从中恢复的能力。

  三、前端性能:连接用户体验

  关注浏览器级别用户体验的前端性能。它测量加载时间、交互性和视觉稳定性。核心 Web Vitals(例如 LCP、FID 和 CLS)定义了前端性能指标。

  四、揭示负载测试类型

  负载测试下的测试类型

  1、冒烟测试:冒烟测试衡量您的系统处理最小负载而不会出现问题的能力。它对于验证脚本的准确性和基本功能很有用。

  2、负载测试:负载测试检查应用程序在典型或预期负载下的行为。它有助于识别负载波动期间的性能下降。

  3、压力测试:压力测试评估系统在最大预期负载下的性能。这对于确认您的应用程序处理峰值流量的能力至关重要。

  4、尖峰测试:尖峰测试模拟突然、强烈的流量尖峰,以测试系统的生存能力。这对于黑色星期五促销或高需求情况等活动至关重要。

  5、浸泡测试:浸泡测试延长了测试周期,以评估长时间内的可靠性。它对于发现内存泄漏或间歇性问题非常有效。

  性能测试工具,例如 Gattle、K6、JMeter、Artillery 和 Locust。这些工具通常使用 HTTP 通过请求模拟用户流量。

  五、优点和缺点:后端和前端性能测试

  1、后端性能测试

  优点:它提供了开发过程中的早期集成、可扩展性以及资源密集程度较低的流程。它提倡持续测试方法并在问题升级之前解决问题。

  缺点:后端测试可能会错过前端问题,随着应用程序的发展需要维护,并导致复杂的用户流产生复杂的脚本。

  2、前端性能测试

  优点:前端测试直接评估用户体验,验证源自前端的性能问题的“80%规则”,并且更容易被测试工程师所接受。

  缺点:前端测试不会深入研究后端机制,缺乏真实的流量条件,并且在扩展时可能会产生误导性的结果。

  六、混合方法:前端和后端

  为了充分利用两全其美,可以考虑采用混合方法。这涉及在协议级别模拟大部分负载,同时集成浏览器虚拟用户与前端交互。

  k6 等性能测试工具旨在提供无缝的开发人员体验。k6 提供了一个融合了浏览器和协议测试的浏览器模块,可以在整个应用程序中提供有价值的见解。

  然后,Marie 演示了一个使用 k6 进行混合性能测试的实际示例,说明如何同时运行浏览器和协议测试,利用场景来定义独特的用户交互。使用 k6 执行混合性能测试会生成浏览器和后端指标的聚合视图。这些指标全面概述了应用程序性能,以便进一步分析和优化。

  七、问答环节

  1、这种方法如何智能地结合虚拟用户和真实用户数据以提供更全面的性能分析的复杂性?

  这种方法涉及虚拟用户和真实用户数据的战略组合,以进行彻底的性能分析。当使用 k6 浏览器时,该方法需要为生成合成数据的受控环境编写脚本。k6 与 Grafana Labs 的集成促进了补充工具的利用。

  取得平衡至关重要;仅仅依靠合成数据是不够的。Chrome 用户体验报告或 Google Search Console 等工具对于快速概览非常有用。然而,真实的用户数据有局限性——反映变化的速度较慢。这强调了需要像 k6 这样的综合工具来衡量直接影响。

  2、如何使用 k6 对 SQL 或 NoSQL 数据库进行负载测试?

  利用 k6 进行数据库负载测试涉及为此目的而设计的扩展。在 k6 Studio 中提供的 k6 扩展页面上,人们可以探索为不同数据库进行负载测试而定制的各种示例扩展。

  这些扩展使用户能够模拟和评估重负载对 SQL 或 NoSQL 数据库的影响。社区提供的见解以及记录的场景有助于设计有效的负载测试和评估数据库性能。

  3、是否可以进行一对一迁移来迁移现有的 JMeter 测试用例?如果没有,是否计划将该功能纳入更多用户?

  最小化浏览器级重放的资源占用的目标确实是一个优先事项。专注于逐步增强 k6 中浏览器 API 的功能。最终目标是与 Playwright API 紧密结合,努力实现兼容性。这种一致性使用户能够主要在浏览器级别复制用户旅程流。

        卓码软件测评是一家[ 具备CMA、CNAS双重资质 ]的专业做软件测试的第三方软件测试服务机构, 可根据您的需求提供各类软件测试服务,并出具合格有效的软件测试报告。点击→→可了解测试报价

        部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。负责人:曾菲       电话:4006070568


文章标签: 性能测试
咨询软件测试