仅针对最新浏览器版本进行 E2E 测试有什么好处
What's the benefit of E2E testing only against latest browser versions
在使用Playwright、Puppeteer、Cypress等工具进行端到端测试时,我相信所有这些(except the latter,如有错误请见谅) 只允许您使用与每个版本捆绑在一起的每个浏览器的最新版本。
在那种情况下,我想知道 运行 您的验收端到端测试的真正好处是什么,它只会针对更有限的场景验证功能,而不是例如确保您的应用程序仍可在 Chrome 70?
上运行
关于为什么只考虑最近的浏览器版本而忘记其余版本的任何见解都是一个好主意,通过使用 Playwright 而不是允许针对特定浏览器二进制文件进行目标测试的工具,例如并获得 E2E 测试结果喜欢:
PASS. Shopping-Cart (Modern)
FAIL. Shopping-Cart (chrome 70)
// Refactor
而不是
PASS. Shopping-Cart
// Yay! Release
具有特定可执行文件的 Puppeteer、Playwright、Cypress
首先,让我们澄清一下,在 Chrome/Chromium 的情况下,可以使用捆绑的可执行文件以外的其他可执行文件来启动 Puppeteer 和 Playwright,因此它不特定于 Cypress。
const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome70' });
const browser = await chromium.launch({ executablePath: '/path/to/Chrome70' });
其次,即使 'testing' 主要存在于 Puppeteer and Playwright, they are not testing frameworks while Cypress is a testing tool 的特征列表中。
仅针对最新浏览器版本进行 E2E 测试有什么好处?
几年前,跨所有浏览器和大量用户使用的尽可能多的版本进行测试至关重要。
随着时间的推移,它发生了变化。
2021 年有什么新变化?
- 只有 Google Chrome 和 Safari (Webkit) 浏览器的市场份额超过 10%。 Statcounter.com, Wikpedia
- 对于绝大多数人来说,甚至不需要 Firefox 支持(在全球范围内 3.68% market share)
- "Google Chrome 在 Windows 和 Mac 定期自动更新。自动-更新程序由 Google Update 执行,它基于开源 Omaha 项目。自动更新提供对有时关键问题的修复,限制曝光。 chromium.org
- 由于自动更新,非最新 Chrome 的用户数量非常少。之前的版本(例如最后一个)在 1-2 个月内停止流通,并在消失前的短时间内保持在 1% 以下的份额。 Desktop Browser Version Market Share Worldwide, Statcounter.com
结论
I.) 这意味着对于大多数产品来说,它已经足够了,并且是针对最新浏览器版本进行测试的最佳选择。
你说的Chrome70是比较老的版本,released in October 2018, for most products it is not required to support it, they are in the same bucket as Internet Explorer 11 or legacy Edge.
II.) 对于某些产品,您可能必须支持特定的(较旧的)浏览器版本,在这种情况下,使用特定的可执行文件会有所帮助。
顺便说一句,如果您决定 运行 针对多个浏览器版本进行测试,那么使用 Puppeteer 或 Playwright 仍然可以,您只需要在迭代测试套件时提供正确的可执行文件(例如,在 Jest 的情况下:describe.each()
可以 运行 具有不同配置和测试数据的相同测试或测试套件)。
在使用Playwright、Puppeteer、Cypress等工具进行端到端测试时,我相信所有这些(except the latter,如有错误请见谅) 只允许您使用与每个版本捆绑在一起的每个浏览器的最新版本。
在那种情况下,我想知道 运行 您的验收端到端测试的真正好处是什么,它只会针对更有限的场景验证功能,而不是例如确保您的应用程序仍可在 Chrome 70?
上运行关于为什么只考虑最近的浏览器版本而忘记其余版本的任何见解都是一个好主意,通过使用 Playwright 而不是允许针对特定浏览器二进制文件进行目标测试的工具,例如并获得 E2E 测试结果喜欢:
PASS. Shopping-Cart (Modern)
FAIL. Shopping-Cart (chrome 70)
// Refactor
而不是
PASS. Shopping-Cart
// Yay! Release
具有特定可执行文件的 Puppeteer、Playwright、Cypress
首先,让我们澄清一下,在 Chrome/Chromium 的情况下,可以使用捆绑的可执行文件以外的其他可执行文件来启动 Puppeteer 和 Playwright,因此它不特定于 Cypress。
const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome70' });
const browser = await chromium.launch({ executablePath: '/path/to/Chrome70' });
其次,即使 'testing' 主要存在于 Puppeteer and Playwright, they are not testing frameworks while Cypress is a testing tool 的特征列表中。
仅针对最新浏览器版本进行 E2E 测试有什么好处?
几年前,跨所有浏览器和大量用户使用的尽可能多的版本进行测试至关重要。
随着时间的推移,它发生了变化。
2021 年有什么新变化?
- 只有 Google Chrome 和 Safari (Webkit) 浏览器的市场份额超过 10%。 Statcounter.com, Wikpedia
- 对于绝大多数人来说,甚至不需要 Firefox 支持(在全球范围内 3.68% market share)
- "Google Chrome 在 Windows 和 Mac 定期自动更新。自动-更新程序由 Google Update 执行,它基于开源 Omaha 项目。自动更新提供对有时关键问题的修复,限制曝光。 chromium.org
- 由于自动更新,非最新 Chrome 的用户数量非常少。之前的版本(例如最后一个)在 1-2 个月内停止流通,并在消失前的短时间内保持在 1% 以下的份额。 Desktop Browser Version Market Share Worldwide, Statcounter.com
结论
I.) 这意味着对于大多数产品来说,它已经足够了,并且是针对最新浏览器版本进行测试的最佳选择。
你说的Chrome70是比较老的版本,released in October 2018, for most products it is not required to support it, they are in the same bucket as Internet Explorer 11 or legacy Edge.
II.) 对于某些产品,您可能必须支持特定的(较旧的)浏览器版本,在这种情况下,使用特定的可执行文件会有所帮助。
顺便说一句,如果您决定 运行 针对多个浏览器版本进行测试,那么使用 Puppeteer 或 Playwright 仍然可以,您只需要在迭代测试套件时提供正确的可执行文件(例如,在 Jest 的情况下:describe.each()
可以 运行 具有不同配置和测试数据的相同测试或测试套件)。