Сегодня мы рады объявить о выпуске 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 для тестирования .