Инструменты Chrome для удобного автоматизированного тестирования

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

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

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

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

Кукловод

Puppeteer — это библиотека Node.js. Он позволяет автоматизировать Chrome, Chromium и Firefox с помощью простого в использовании высокоуровневого API.

Хотя этот API изначально был основан на протоколе Chrome DevTools, цель состоит в том, чтобы к концу года сделать новый усовершенствованный протокол WebDriver BiDi основой Puppeteer. WebDriver BiDi, созданный совместно всеми основными поставщиками браузеров, упрощает множество вариантов использования автоматизации и позволяет использовать множество новых, а также совместим с разными браузерами.

Но ждать не обязательно. API Puppeteer уже сегодня позволяет использовать множество вариантов автоматизации, которые будут только улучшаться с появлением WebDriver BiDi. От тестирования до визуального сканирования и автоматизации процессов — вы можете многое сделать с помощью таких функций, как взаимодействие страниц , перехват запросов и снимки экрана . Вы даже можете использовать его для тестирования своих веб-моделей искусственного интеллекта в облаке с помощью WebGPU и WebGL.

Puppeteer также используется такими инструментами, как WebdriverIO , полноценная среда тестирования браузера, и инструментом анализа конфиденциальной песочницы , позволяющим лучше понять использование файлов cookie и пользовательских данных на вашем сайте.

Хром безголовый

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

Но знаете ли вы, что безголовый режим Chrome — это не просто «Хром без окон», а фактически полностью поддерживаемая отдельно версия Chrome? Долгое время это приводило к путанице и усложняло отслеживание ошибок и проблем.

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

Puppeteer использует этот новый режим Headless по умолчанию с версии 22. Если вы используете Chrome Headless через другие решения для автоматизации, вы можете принудительно включить новый режим Headless с помощью переключателя командной строки --headless=new .

Хотя новый режим Headless в Chrome более мощный, он не такой легкий, как старый режим Headless. Если вы очень ограничены в ресурсах или вам не нужны все функции Chrome, вы можете использовать старый режим Headless как chrome-headless-shell .

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

При тестировании вам необходим детальный контроль над средой тестирования: операционной системой, браузером и версией браузера. С автоматическим обновлением Chrome это может быть затруднительно.

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

Доступ к двоичным файлам Chrome for Testing можно получить из панели доступности Chrome for Testing , JSON API или с помощью утилиты командной строки Puppeteer .


Puppeteer, обновленный режим Headless в Chrome и Chrome для тестирования — это лишь часть работы, которую в настоящее время делает наша команда, чтобы сделать автоматизацию браузера и проведение тестов максимально простыми для вас. А сопутствующие инструменты, такие как DevTools Recorder , помогут вам в создании тестов: записывайте пользовательский поток в Chrome и воспроизводите его в Puppeteer.

Изучите тестирование на web.dev

Инструменты, описанные в этом посте, помогут вам улучшить автоматическое тестирование. Но если вы только начинаете, может показаться, что вам нужно многое понять и изучить. Поэтому мы создали новый курс из 10 модулей — Learn Testing на web.dev . В этом углубленном курсе рассматриваются основные концепции тестирования, где и как выполняются тесты, типы тестов и что на самом деле тестировать. Это отличная отправная точка для вашего путешествия по тестированию. Если у вас есть все необходимое, смело переходите к нашей коллекции автоматизации тестирования с подробным описанием и практическими советами по более конкретным вопросам тестирования.