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 для тестирования, мы внесли изменения в кодовые базы Chromium и Chrome и настроили инфраструктуру для сборки и загрузки этих двоичных файлов в общедоступный контейнер в соответствии с процессом выпуска Chrome по всем каналам (Stable, Beta, Dev и Canary).

Инфраструктура Chrome for Testing открывает интересные возможности, выходящие за рамки самого Chrome. Например, упомянутые ранее трудности с поиском соответствующего исполняемого файла Chrome и ChromeDriver можно полностью устранить , интегрировав процесс выпуска ChromeDriver в инфраструктуру Chrome for Testing . Помимо решения этой проблемной ситуации для пользователей, это также согласует выпуски 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 for Testing .