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

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

Фон

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

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

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

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

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

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

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

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

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

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

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

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

Логотип Chrome для тестирования — это обычный логотип Chrome со словом «Test» в черном прямоугольнике.

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

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