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 для тестирования .