要么你有一个新网站,要么刚刚开发了一些用户需要的功能,当大量用户开始与网站交互时,您如何确保您的网站运行良好? 答案是负载测试。 负载测试是性能测试的重要组成部分,用于确定网站、应用程序或软件在正常和峰值条件下的行为。 负载测试提供有用的数据,可提高您的网站性能,并提高预期负载条件的稳定性。 直到最近,基于协议的负载测试是测试网站预期负载条件的唯一方法。 随着技术和用户体验的不断发展,使用真正的 Chrome 浏览器允许测试人员使用模拟真实用户所需的更真实的环境,以及更准确的负载测试结果。

在这篇文章中,我们将讨论以下三种广泛使用的负载测试方法:

  1. 基于浏览器的负载测试(使用常规 Chrome 浏览器)
  2. 无头浏览器负载测试
  3. 基于协议的负载测试

 

基于 Chrome 浏览器的负载测试

基于浏览器的负载测试通过负载生成器创建常规 Chrome 浏览器实例来模拟真实用户,并且所测试的网站在简单脚本的帮助下进行导航。 这创造了一个几乎与现实世界中的实际用户相同的环境。 基于浏览器的负载测试中的虚拟用户称为浏览器级别用户 (BLU)。 基于浏览器的负载测试脚本具有与网站上的实际导航和交互相关的说明。 例如,单击哪个按钮、导航地点、输入框中要馈送的信息、如何与元素交互、何时与元素交互等等。 这允许测试人员模拟与真实场景完全相同的用户旅程。

 

基于浏览器的负载测试的优点

 

用户视角

真实世界的最终用户使用浏览器与网站进行交互,例如,在真正的 Chrome 浏览器中。 基于浏览器的负载测试允许您使用常规 Chrome 浏览器加载测试您的网站,并了解真实世界的用户行为。

 

简单脚本

若要创建基于浏览器的负载测试脚本,您不需要深入了解基础协议。 例如,如果要创建登录操作,只需填写用户名和密码,以及单击哪个按钮即可继续,则无需了解身份验证协议等的技术性。

 

降低测试复杂性

与其他需要参数和值通过的传统负载测试方法不同,基于浏览器的负载测试使用简化的脚本轻松创建和启动。

 

前端优化

基于浏览器的负载测试允许您收集最准确的真实数据,如网络和请求延迟,因为您的用户还使用常规浏览器与您的网站进行交互。 这有助于优化前端。

 

低维护

简单的脚本和不太复杂的测试意味着更轻松的维护,以及负载测试的敏捷性。 例如,在我们的登录示例中,如果我们更改身份验证协议,则不需要更改登录负载测试,因为它不受此影响。

 

基于浏览器的负载测试的缺点

更高的 CPU 和内存使用率

例如,使用常规镶边浏览器进行基于浏览器的负载测试需要更高的 CPU 和内存才能为预期负载创建实例。 但是,如果使用基于云的负载测试平台,这应该不是什么问题。

 

有时更长的运行时间

基于浏览器的负载测试涉及在浏览器实例中呈现完整的网站 UI,而不是简单的 API 请求-响应记录。 这可能需要比接近的其他负载测试更长的时间。 但是,它通常与运行基于浏览器的测试和出色的基于云的负载测试工具的简单性相反。

 

无头浏览器负载测试

无头浏览器负载测试涉及在浏览器环境中运行负载测试,而无需创建”头”或用户界面。 这意味着通过创建不带任何图形用户界面 (GUI) 的不可见浏览器实例来运行负载测试。 无头浏览器负载测试跳过渲染或绘图操作,因为没有人在观看模拟浏览器。 与实际基于浏览器的负载测试相比,它允许您在资源较少的浏览器环境中快速运行负载测试。 无头浏览器的示例包括:

 

无头铬

Chrome 浏览器可以以无头模式推出,版本为 59 或更晚。 它重量轻,资源密集程度较低,可用于导航、收集页面上的信息、生成 PDF 和截屏。

 

无头火狐

Firefox 还提供 56 版或更晚版本的无头浏览器模式。 它可用于基本测试与测试工具,如无头测试和自动化的Selenium。

 

幻影

PhantomJS 是一个灵活的无头 Web 工具包,支持许多 Web 标准。 JavaScript API 用于在使用 PhantomJS 进行测试时编写测试脚本。 它主要用于导航和断言测试。

 

无头浏览器负载测试的优点

 

资源密集程度更低

由于浏览器环境负载测试中没有呈现 GUI,因此无头浏览器负载测试允许您用更少的资源生成更多的负载。

 

更快的浏览器环境测试

通过无头浏览器负载测试,测试可以更快地执行并获得结果,从而快速修复潜在问题。

 

基于浏览器的负载测试的缺点

有限的浏览器环境功能

虽然您可以在无头浏览器测试中测试许多基于浏览器的方案,但还不足以了解使用 Chrome 等常规浏览器的真实世界用户的完整图片。

 

缺少浏览器监控

很少有测试用例方案要求您查看基于浏览器的测试,如动画、SPA 转换等,以彻底分析负载测试。 无头浏览器负载测试没有此功能。

 

基于协议的负载测试

基于协议的负载测试是通过模拟负载服务器上 HTTP/S 级别的流量进行负载测试的最传统方式。 它主要用于评估和评估服务器上预期负载的请求-响应交换。 基于协议的负载测试是一种最小的负载测试形式,它本身并不适合专注于用户体验的复杂 Web 应用程序。

 

基于协议的负载测试的优势

资源密集最少

基于协议的负载测试仅涉及生成 HTTP/S 请求-响应流量,从而允许以最少的资源生成非常高的负载。

 

更快的执行速度

由于仅对协议级指标分析 HTTP/S 流量,因此基于协议的负载测试可提供更快的测试执行,实现更高的预期负载。

 

基于协议的负载测试的缺点

 

复杂测试

基于协议的脚本需要深入了解 HTTP/S 级别上使用的各种协议,例如用于登录的 Oauth 协议。 这使得脚本加载测试变得复杂且耗时。

 

最不现实的环境

与用户使用 Chrome 等常规浏览器访问您的网站的实际环境相比,基于协议的负载测试没有提供此类功能。 对于关注用户观点的网站来说,这不是正确的选择。

 

现代网站功能不足

现代网站现在使用大量使用浏览器 JavaScript 和 AJAX 调用的堆栈更为复杂,这使得基于协议的负载测试在许多测试方案中受到限制。

 

基于浏览器的负载测试的负载视图

根据我们迄今所讨论的,基于浏览器的负载测试显然是负载测试方法的下一个演变过程。 当今的网站和技术侧重于丰富的用户体验,并严重依赖浏览器端的解释和渲染,而不是服务器端。 单页应用程序 (SCA) 现在被广泛用于使用客户端 JavaScript 框架和 AJAX 调用的流行框架,无需页面刷新来更新 UI。

LoadView 使用 Chrome 等真实浏览器提供基于云的负载测试,为您的负载测试方案创建最真实的环境。 借助 LoadView,您可以轻松地 为不同的用户操作 和行为创建脚本,并点击几下即可运行测试。

 

使用 LoadView 可以测试什么

  1. 网站
  2. 单页应用程序 (SCA)
  3. 第三方服务/API
  4. 媒体丰富的网站,如流媒体服务

 

LoadView 的优点和优势,用于真正的基于浏览器的负载测试

  1. 无需使用 EveryStep Web 记录器编写一行代码即可轻松创建测试脚本,以加载测试所有页面。
  2. 超过 40 个真正的桌面/移动浏览器,使您能够在几乎任何设备上测试您的网页。
  3. 地理分布负载测试允许您测试 来自多个位置的用户, 在真实场景中获得更准确的结果。
  4. LoadView 对 DevOps 非常友好,提供多个测试曲线来测量性能和优化 Web 应用程序。

 

总结:基于浏览器的实时负载测试的好处

基于浏览器的负载测试是基于现代框架和媒体丰富内容的网站的必要条件。 使用真正的浏览器(如 Chrome)进行加载测试 ,Chrome 的市场份额超过 65%,为您提供大量性能结果,从而快速优化您的网站。 但是,您不应将自己限制为只使用 Chrome 进行负载测试或使用单个设备。 能够从多个地理位置在几乎任何浏览器或设备上测试您的网站,将为您提供有关测试的全面见解,以分析和优化您的网站,以完成预期负载。

今天请尝试 LoadView 。 获得 20 美元的负载测试积分,开始使用基于 Chrome 浏览器的负载测试。