Chrome для тестирования: надежные загрузки для автоматизации браузера

Сегодня мы рады объявить о выпуске Chrome for Testing — новой версии Chrome, специально разработанной для тестирования и автоматизации веб-приложений. В этой статье объясняется, почему команда Chrome посчитала это необходимым, и приводятся конкретные примеры того, как Chrome for Testing может быть полезен разработчику.

Фон

Тестирование в браузерах — важнейший компонент создания высококачественного веб-интерфейса, независимо от того, выполняется оно вручную или автоматически. В то же время, создание адекватной среды для тестирования в браузерах — задача крайне сложная, настолько, что она постоянно упоминается как одна из главных проблем веб-разработчиков. Сегодня мы объявляем об изменении, которое, как мы надеемся, облегчит некоторые из этих проблем.

Автоматическое обновление: отлично для пользователей, но проблематично для разработчиков.

Одна из самых примечательных особенностей Chrome — это возможность автоматического обновления. Пользователи рады знать, что используют актуальную и безопасную версию браузера, включающую современные функции веб-платформы, возможности браузера и исправления ошибок.

Однако, как разработчик , выполняющий комплексное тестирование, вы можете иметь совершенно иную точку зрения:

  • Вам нужны стабильные и воспроизводимые результаты при повторных запусках тестирования, но этого может не произойти, если исполняемый файл браузера или бинарный файл решит обновиться между двумя запусками.
  • Вам нужно зафиксировать конкретную версию браузера и добавить этот номер версии в репозиторий исходного кода, чтобы вы могли переключаться между старыми коммитами и ветками и повторно запускать тесты для исполняемого файла браузера с того момента времени.

Ничего из этого невозможно с автоматически обновляемым исполняемым файлом браузера. В результате, возможно, вам не стоит использовать обычную установку Chrome для автоматизированного тестирования. Это принципиальное несоответствие между тем, что хорошо для обычных пользователей браузера, и тем, что хорошо для разработчиков, занимающихся автоматизированным тестированием.

Версионированные исполняемые файлы браузера

Помимо автоматического обновления, вам, возможно, также было сложно найти исполняемый файл Chrome с указанием конкретной версии. Google намеренно не предоставляет доступ к загрузкам Chrome с указанием версий, поскольку пользователям не следует беспокоиться о номерах версий — они всегда должны обновляться до последней версии как можно скорее. Это отлично подходит для пользователей, но создает проблемы для разработчиков, которым необходимо воспроизвести ошибку в более старой версии Chrome.

Более конкретный пример этой проблемы — использование ChromeDriver для автоматизации браузера. Вам нужно не только каким-то образом загрузить исполняемый файл Chrome, но и иметь соответствующий по версии исполняемый файл ChromeDriver, чтобы обеспечить совместимость двух файлов.

Поскольку эффективного решения этих проблем не существует, многие разработчики загружают бинарные файлы Chromium (а не Chrome) , хотя у этого подхода есть некоторые недостатки. Во-первых, эти бинарные файлы Chromium не всегда доступны на всех платформах. Во-вторых, они создаются и публикуются отдельно от процесса выпуска Chrome, что делает невозможным сопоставление их версий с реальными версиями Chrome, доступными пользователям. В-третьих, Chromium отличается от Chrome.

Решение: Chrome для тестирования

Chrome for Testing, разработанный для решения этих проблем, представляет собой специальную версию Chrome, ориентированную на тестирование, без автоматического обновления, интегрированную в процесс выпуска Chrome и доступную для каждого релиза Chrome. Это версионированный бинарный файл, максимально приближенный к обычному Chrome, но не оказывающий негативного влияния на тестирование.

Для создания Chrome для тестирования мы внесли изменения в кодовые базы Chromium и Chrome , а также настроили инфраструктуру для сборки и загрузки этих бинарных файлов в общедоступный репозиторий в соответствии с процессом выпуска Chrome по всем каналам (Stable, Beta, Dev и Canary).

Инфраструктура Chrome для тестирования открывает интересные возможности за пределами самого Chrome. Например, упомянутые ранее трудности с поиском соответствующего исполняемого файла Chrome и ChromeDriver могут быть полностью устранены за счет интеграции процесса выпуска ChromeDriver в инфраструктуру Chrome для тестирования . Помимо решения этой проблемы, с которой сталкиваются пользователи, это также обеспечивает согласование выпусков ChromeDriver с выпусками Chrome и исключает необходимость ручного выпуска ChromeDriver.

Как мне получить доступ к тестовым исполняемым файлам Chrome?

Самый простой способ загрузить бинарные файлы Chrome for Testing для вашей платформы — использовать нашу утилиту командной строки @puppeteer/browsers , доступную через npm . Вот несколько примеров:

# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable

# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0

# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary

# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0

Если вы предпочитаете создавать собственные автоматизированные скрипты для загрузки этих бинарных файлов, мы вам поможем. Мы предлагаем конечные точки JSON API с последними доступными версиями для каждого канала выпуска Chrome (Stable, Beta, Dev, Canary). Для быстрого ознакомления с текущим состоянием, обратитесь к панели мониторинга доступности Chrome для тестирования .