Автоматизированное тестирование браузеров имеет важное значение для создания надежных и высококачественных веб-приложений. Независимо от того, используете ли вы комплексные пакеты непрерывной интеграции (CI), проводите регрессионное тестирование в разных версиях браузера или автоматизируете взаимодействие с браузером, Chrome предоставляет специализированный набор инструментов и режимов выполнения, разработанных для разработчиков и инженеров по автоматизации тестирования.
В этом обзоре представлены основные продукты экосистемы автоматизации и тестирования Chrome — Chrome for Testing , ChromeDriver , Puppeteer и Chrome Headless mode — и объясняется, как их можно использовать вместе для создания надежных и воспроизводимых рабочих процессов тестирования.
Chrome для тестирования
Chrome for Testing — это специальная версия Chrome, предназначенная для тестирования веб-приложений и автоматизации тестирования.
При запуске сквозных наборов тестов или конвейеров непрерывной интеграции (CI) часто требуются согласованные и воспроизводимые результаты при повторных запусках тестов. Вместо того чтобы полагаться на стандартные установки браузеров, Chrome for Testing позволяет загружать и закреплять определенные версии Chrome для ваших тестовых сред.
Основные характеристики
- Загрузка версионированных файлов по запросу: получайте доступ к конкретным версионированным исполняемым файлам Chrome, чтобы всегда тестировать именно ту версию, которую вы выбрали.
- Парные бинарные файлы для разных каналов: для каждого релиза Chrome во всех каналах ( Stable , Beta , Dev и Canary ) Chrome for Testing предоставляет соответствующие бинарные файлы Chrome, сопряженные с соответствующими бинарными файлами ChromeDriver, а также старую оболочку Chrome Headless (
chrome-headless-shell) для тех, кто все еще использует ее в автоматизированных тестах. - Простая автоматизация загрузки: бинарные файлы можно легко загрузить с помощью утилиты командной строки
@puppeteer/browsersили запросить через панель мониторинга доступности.
Узнать больше
ChromeDriver
ChromeDriver — это автономный сервер с открытым исходным кодом, реализующий стандарт W3C WebDriver и двунаправленный протокол WebDriver BiDi. Он выступает в качестве моста между тестовыми фреймворками на основе WebDriver (такими как Selenium, WebDriverIO и Nightwatch) и браузером Chrome.
Основные характеристики
- Поддержка W3C WebDriver и WebDriver BiDi: Поддерживает как классические команды автоматизации WebDriver, так и двустороннюю связь в реальном времени через WebDriver BiDi для быстрого прослушивания событий, мониторинга сети и перехвата журналов.
- Выпуск ChromeDriver осуществляется совместно с Chrome for Testing: релизы ChromeDriver интегрированы непосредственно в инфраструктуру Chrome for Testing. Для каждой версии Chrome for Testing одновременно выпускается соответствующая версия ChromeDriver, что исключает проблемы, связанные с несоответствием версий.
Узнать больше
- Документация ChromeDriver
- WebDriver BiDi — будущее кроссбраузерной автоматизации
- MDN: Справочник WebDriver BiDi
Кукловод
Puppeteer — это библиотека JavaScript, разработанная Google, которая предоставляет высокоуровневый API для управления Chrome через протокол Chrome DevTools Protocol (CDP) или WebDriver BiDi.
Основные характеристики
- Автоматизация без необходимости настройки: Puppeteer автоматически загружает совместимый исполняемый файл Chrome for Testing по умолчанию, что позволяет автоматизировать работу браузера «из коробки».
- Полный контроль над Chrome: легко делайте скриншоты, создавайте PDF-файлы, автоматизируйте отправку форм, перехватывайте сетевые запросы и выполняйте тесты пользовательского интерфейса как в режиме Headful, так и в режиме Headless.
Узнать больше
Chrome безголовый режим
Режим «Безголовый» в Chrome позволяет запускать Chrome в автономном режиме без видимого пользовательского интерфейса. Указав флаг --headless в командной строке, Chrome будет корректно работать в серверных средах, контейнерах и конвейерах CI/CD.
Основные характеристики
- Единый браузерный движок: современный безголовый режим (
--headless) использует ту же самую реализацию браузера, что и полнофункциональный Chrome. - Широкие возможности автоматизации и отладки: поддержка захвата скриншотов, создания PDF-файлов, удаленной отладки и настройки виртуального экрана.
Узнать больше
- Запустите Chrome в безголовом режиме.
- Настройка виртуальных экранов
- Отладка в безголовом режиме
- Справочник по безголовой командной строке
Пример: Использование этих продуктов вместе.
В типичном рабочем процессе автоматизированного тестирования или непрерывной интеграции (CI) эти продукты работают вместе, обеспечивая воспроизводимую среду тестирования без участия пользователя:
- Исполняемый файл браузера (Chrome для тестирования): Используйте определенный, зафиксированный по версии исполняемый файл Chrome для тестирования, чтобы результаты ваших тестов были предсказуемыми при каждом запуске.
- Режим выполнения (режим Chrome Headless): Запустите этот исполняемый файл в режиме Headless (
--headless), чтобы тесты выполнялись корректно на серверах, в контейнерах или конвейерах CI без графического отображения. - Драйвер автоматизации (Puppeteer или ChromeDriver): управляйте браузером с помощью библиотеки автоматизации, такой как Puppeteer , или любой другой среды тестирования, подключенной через WebDriver BiDi .
Puppeteer автоматически соединяет эти компоненты. После установки он загружает совместимый исполняемый файл Chrome for Testing и по умолчанию запускает его в безголовом режиме .
При использовании фреймворков W3C WebDriver (таких как Selenium или WebdriverIO) вы можете автоматически загрузить соответствующую пару бинарных файлов Chrome for Testing и ChromeDriver и передать флаг --headless для запуска без пользовательского интерфейса.