首页 > 解决方案 > 仅针对最新浏览器版本进行 E2E 测试有什么好处

问题描述

在使用 Playwright、Puppeteer 和 Cypress 等工具执行端到端测试时,我相信所有这些工具除了后者,如果我错了,请原谅我)只允许您使用每个浏览器的最新版本,即与每个版本捆绑在一起。

在这种情况下,我想知道运行验收端到端测试的真正好处是什么,它只会针对更有限的场景验证功能,而不是确保您的应用程序仍然可以在 Chrome 70 上运行?

任何关于为什么只考虑最近的浏览器版本而忘记其余版本的见解都是一个好主意,通过使用 Playwright 而不是允许针对特定浏览器二进制文件进行目标测试的工具,例如并使您的 E2E 测试结果如下:

PASS. Shopping-Cart (Modern)
FAIL. Shopping-Cart (chrome 70) 
// Refactor

代替

PASS. Shopping-Cart
// Yay! Release

标签: puppeteercypresse2e-testingplaywright

解决方案


具有特定可执行文件的 Puppeteer、Playwright、Cypress

首先,让我们澄清一下,在 Chrome/Chromium 的情况下,除了捆绑的可执行文件之外,可以使用其他可执行文件启动 Puppeteer 和 Playwright,因此它不是赛普拉斯特有的。

const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome70' });
const browser = await chromium.launch({ executablePath: '/path/to/Chrome70' });

其次,即使PuppeteerPlaywright的功能列表中有“测试” ,它们也不是测试框架,而Cypress主要是一个测试工具。


仅针对最新浏览器版本进行 E2E 测试有什么好处?

几年前,对所有浏览器和大量用户使用的版本进行测试至关重要。
随着时间的推移,它发生了变化。

2021年有什么新变化?

  • 只有Google ChromeSafari (Webkit) 浏览器拥有 10% 以上的市场份额。Statcounter.com ,维基百科
  • 对于绝大多数人来说,甚至不需要 Firefox 支持(其全球市场份额为 3.68%
  • “Windows 和 Mac 上的 Google Chrome会定期自动更新。自动更新过程由基于开源 Omaha 项目的 Google Update 执行。自动更新有时会修复关键问题,限制曝光。” 铬.org
  • 由于自动更新,使用非最新 Chrome 的用户数量非常少。以前的版本(例如最后一个版本)会在 1-2 个月内停止流通,并在短时间内保持低于 1% 的份额,然后消失。桌面浏览器版本全球市场份额,Statcounter.com

桌面浏览器版本全球市场份额

结论

I.)这意味着对于大多数产品来说,它已经足够了,并且是针对最新浏览器版本进行测试的最佳选择。

您提到了 Chrome 70,它是一个相对较旧的版本,于 2018 年 10 月发布,对于大多数产品不需要支持它,它们与Internet Explorer 11 或旧版 Edge位于同一桶中。

II.) 对于某些产品,您可能必须支持特定(旧)浏览器版本,在这种情况下,使用特定的可执行文件会有所帮助。

顺便说一句,如果您决定针对多个浏览器版本运行测试,它仍然可以使用 Puppeteer 或 Playwright,您只需要在迭代测试套件时提供正确的可执行文件(例如,在 Jest 的情况下:describe.each()可以运行具有不同配置和测试数据的相同测试或测试套件)。


推荐阅读