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

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

Фон

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

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

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

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

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

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

Версионные двоичные файлы браузера

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

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

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

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

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

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

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

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

Самый простой способ загрузить двоичные файлы Chrome для тестирования для вашей платформы — использовать нашу утилиту командной строки @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 для тестирования .