在Safari和Webkit上测试有什么区别?

在Safari和Webkit上测试有什么区别?,safari,cross-browser,webkit,playwright,Safari,Cross Browser,Webkit,Playwright,我正在考虑使用剧作家编写一些E2E测试。我可以看到该库允许对Chromium、Firefox和Webkit运行测试。我的理解是Webkit是Safari的底层引擎,Chrome是Chrome(和其他浏览器)的基础 当涉及到针对Webkit/Chromium的测试时,与针对使用底层引擎的面向用户的浏览器的测试有多接近?我想用户在使用Safari时可能会遇到一些怪癖,在Webkit上运行测试时不会被发现 感谢谷歌Chrome、苹果Safari嵌入渲染引擎(Chrome、WebKit)等股票浏览器,并

我正在考虑使用剧作家编写一些E2E测试。我可以看到该库允许对Chromium、Firefox和Webkit运行测试。我的理解是Webkit是Safari的底层引擎,Chrome是Chrome(和其他浏览器)的基础

当涉及到针对Webkit/Chromium的测试时,与针对使用底层引擎的面向用户的浏览器的测试有多接近?我想用户在使用Safari时可能会遇到一些怪癖,在Webkit上运行测试时不会被发现


感谢

谷歌Chrome、苹果Safari嵌入渲染引擎(Chrome、WebKit)等股票浏览器,并在其上添加内容。特别是,它们添加了专有的媒体编解码器、插入浏览器扩展等。它们还添加了周围的接口,如书签同步。但它们重用了底层的web平台实现

铬 Chrome是Google Chrome、Opera、Microsoft Edge和其他浏览器使用的开源web平台实现。它实现web规范、呈现内容、使用网络等。Playwright使用一个stock Chromium构建,可以通过Playwright API自动进行e2e测试

对于谷歌Chrome来说,事情很简单:Chrome是一个安全的测试目标,它采用专有媒体编解码器和DRM。你们可以指点剧作家对抗股票铬金丝雀或边缘金丝雀使用专有的媒体编解码器

网络工具包 WebKit是Apple Safari和Epiphany使用的开源web平台实现。截至2020年6月,Playwright提供了一个WebKit构建,可以使用Playwright API自动进行e2e测试。剧作家WebKit可以在所有平台(macOS、Linux、Windows)上以无头和无头模式工作

当WebKit在macOS上运行时,它是测试Safari的安全目标。Linux和Windows上的WebKit与Apple Safari的不同之处在于:它使用非macOS网络堆栈,使用非核心动画合成场景并生成图像光栅。这意味着Linux和Windows上的屏幕截图不会与macOS上的截图完全匹配。就web平台而言,相同的WebKit代码将布局页面并运行JavaScript,它将匹配WebKit在Safari中的工作方式


总结,我们认为剧作家提供的浏览器是E2E测试所能得到的最好的浏览器。在Linux CI上运行WebKit将使用与macOS不同的合成管道,但它可以用于WebKit支持的浏览器中web应用程序的e2e测试。

这是一个轶事,但我在macOS上运行,我遇到了剧作家的WebKit和Safari之间的差异:影响Safari,但我的测试不会在剧作家中失败。这可能是一个Safari问题(不是webkit),但对剧作家来说绝对不是一个好问题:我不相信我的UI测试真的涵盖了Safari