Стандартные браузеры, такие как Google Chrome, Apple Safari, встраивают движки рендеринга (Chromium, WebKit) и добавляют что-то поверх них. В частности, они добавляют проприетарные медиакодеки, внедряют расширения браузера и т. Д. Они также добавляют окружающие интерфейсы, такие как синхронизация закладок. Но они повторно используют базовую реализацию веб-платформы.
Хром
Chromium - это реализация веб-платформы с открытым исходным кодом, используемая Google Chrome, Opera, Microsoft Edge и другими браузерами. Он реализует веб-спецификации, отображает контент, работает с сетью и т. Д. Playwright использует стандартную сборку Chromium, которую можно автоматизировать с помощью Playwright API для тестирования e2e.
В случае с Google Chrome все просто: Chromium - безопасная цель для тестирования, благодаря модулю проприетарных медиакодеков и DRM. Вы можете указать Playwright против стандартного Chrome Canary или Edge Canary для использования проприетарных медиакодеков.
WebKit
WebKit - это реализация веб-платформы с открытым исходным кодом, используемая Apple Safari и Epiphany. По состоянию на июнь 2020 года Playwright предоставляет сборку WebKit, которую можно автоматизировать с помощью Playwright API для тестирования e2e. Playwright WebKit работает на всех платформах (macOS, Linux, Windows) как в безголовом, так и в головном режимах.
Когда WebKit работает в macOS, это безопасная цель для тестирования Safari. WebKit в Linux и Windows отличается от Apple Safari следующим образом: он использует сетевой стек, отличный от MacOS, использует неосновную анимацию для составления сцены и создания растрового изображения. Это означает, что снимки экрана в Linux и Windows не будут полностью соответствовать снимкам экрана из macOS. Что касается веб-платформы, тот же код WebKit будет компоновщик страницы и запускать JavaScript - он будет соответствовать тому, как WebKit работает в Safari.
В заключение, мы считаем браузеры, предоставленные Playwright, лучшими из того, что вы можете получить для тестирования e2e. Запуск WebKit на Linux CI будет использовать другой конвейер компоновки, чем macOS, но его можно использовать для тестирования e2e веб-приложений в браузерах на базе WebKit.
person
arjunattam
schedule
04.06.2020