В чем разница между тестированием в Safari и Webkit?

Я собираюсь написать несколько тестов E2E с помощью Playwright. Я вижу, что библиотека позволяет запускать тесты для Chromium, Firefox и Webkit. Насколько я понимаю, Webkit является базовым движком Safari, а Chromium - базой Chrome (и других браузеров).

Когда дело доходит до тестирования с использованием Webkit / Chromium, насколько оно близко к тестированию с использованием браузеров, работающих с пользователем, которые используют базовые движки? Я предполагаю, что будут некоторые причуды, с которыми пользователь может столкнуться при использовании Safari, и они не будут обнаружены при запуске тестов на Webkit.

Спасибо


person user1087943    schedule 03.06.2020    source источник


Ответы (1)


Стандартные браузеры, такие как 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
comment
Это анекдотично, но я работаю на macOS, и я обнаружил разницу между webkit Playwright и Safari: эта ошибка затрагивает Safari, но мои тесты не терпят неудач в Playwright. Это может быть проблема Safari (не webkit), но для Playwright это определенно не очень хорошо: я не уверен, что мои тесты пользовательского интерфейса действительно охватывают Safari. - person Robin Métral; 12.04.2021