Автоматизация и тестирование с помощью Chrome

Автоматизированное тестирование браузеров имеет важное значение для создания надежных и высококачественных веб-приложений. Независимо от того, используете ли вы комплексные пакеты непрерывной интеграции (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, что исключает проблемы, связанные с несоответствием версий.

Узнать больше


Кукловод

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-файлов, удаленной отладки и настройки виртуального экрана.

Узнать больше


Пример: Использование этих продуктов вместе.

В типичном рабочем процессе автоматизированного тестирования или непрерывной интеграции (CI) эти продукты работают вместе, обеспечивая воспроизводимую среду тестирования без участия пользователя:

  1. Исполняемый файл браузера (Chrome для тестирования): Используйте определенный, зафиксированный по версии исполняемый файл Chrome для тестирования, чтобы результаты ваших тестов были предсказуемыми при каждом запуске.
  2. Режим выполнения (режим Chrome Headless): Запустите этот исполняемый файл в режиме Headless ( --headless ), чтобы тесты выполнялись корректно на серверах, в контейнерах или конвейерах CI без графического отображения.
  3. Драйвер автоматизации (Puppeteer или ChromeDriver): управляйте браузером с помощью библиотеки автоматизации, такой как Puppeteer , или любой другой среды тестирования, подключенной через WebDriver BiDi .

Puppeteer автоматически соединяет эти компоненты. После установки он загружает совместимый исполняемый файл Chrome for Testing и по умолчанию запускает его в безголовом режиме .

При использовании фреймворков W3C WebDriver (таких как Selenium или WebdriverIO) вы можете автоматически загрузить соответствующую пару бинарных файлов Chrome for Testing и ChromeDriver и передать флаг --headless для запуска без пользовательского интерфейса.


Руководство по корпоративным и релизным каналам