Вам надоело ждать выполнения набора тестов при помощи Playwright? Хотите запускать тесты на разных операционных системах и браузерах без необходимости управлять сложной инфраструктурой? Ускорить выполнение тестов и улучшить покрытие, запускать тесты на различных комбинациях ОС и браузеров поможет Microsoft Playwright Testing.

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

Сервис Microsoft Playwright Testing

Microsoft Playwright Testing — это управляемый сервис, который использует облачные технологии для обеспечения большей параллельности тестов на разных комбинациях ОС и браузеров. Благодаря этому достигается ускорение прогонов тестов и более широкое покрытие, что позволяет быстрее поставлять новые фичи без ущерба для качества.

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

  • Ускорить выполнение тестов: Запускайте больше тестов параллельно, не беспокоясь о локальных ограничениях ресурсов.

  • Улучшить покрытие тестами: Легко тестируйте на разных браузерах и операционных системах, а управление инфраструктурой возьмёт на себя сервис.

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

Как работает сервис?

Сервис Playwright Testing использует встроенную возможность Playwright OSS запускать несколько тестов параллельно. Когда вы запускаете тесты, Playwright создаёт несколько рабочих процессов, каждый из которых отвечает за запуск собственного экземпляра браузера.

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

Running Playwright tests without the service

Однако с Microsoft Playwright Testing браузеры хостятся и управляются в облаке — это устраняет ограничения локальных ресурсов, позволяя запускать гораздо больше тестов параллельно. Кроме того, можно выбрать операционную систему, на которой будут хоститься браузеры, что улучшает покрытие тестами без повышения сложности.

Running Playwright tests using Microsoft Playwright Testing service

Как интегрировать набор тестов с Microsoft Playwright Testing

Чтобы начать использовать Microsoft Playwright Testing, выполните следующие шаги:

Требования

  • Рабочий набор тестов Playwright на JS/TS с использованием Playwright Test Runner. Если у вас его нет, создайте его, следуя документации по начальной настройке Playwright, или используйте наш пример проекта Microsoft Playwright Testing.

  • Аккаунт Azure с активной подпиской. Если у вас нет подписки Azure, создайте бесплатную учётную запись перед началом.

  • Установленный Azure CLI — скачайте его здесь.

Шаги для интеграции

  1. Создайте рабочее пространство Playwright Testing:

    • Войдите в портал сервиса, используя свои учётные данные Azure.

    • Выберите свою подписку, нажмите «Создать новое рабочее пространство» и введите следующую информацию:

Поле

Описание

Workspace name

Уникальное имя для идентификации рабочего пространства. Имя должно содержать только алфавитно-цифровые символы и иметь длину от 3 до 64 символов.

Azure subscription

Подписка Azure, которую хотите использовать для этого рабочего пространства Microsoft Playwright Testing.

Region

Географическое расположение для хостинга рабочего пространства. Это место, где будут храниться данные о выполнении тестов для рабочего пространства.

Create workspace from service portal
  • Нажмите «Создать рабочее пространство», чтобы создать его в вашей подписке. После того как рабочее пространство будет создано, вы перейдете на страницу с инструкциями по началу работы.

  1. Установите пакет сервиса в вашем проекте Playwright:

В вашем IDE перейдите в проект Playwright и выполните следующую команду. Это создаст файл playwright.service.config.ts рядом с вашим конфигурационным файлом Playwright, что позволит запускать тесты на сервисе.

npm init @azure/microsoft-playwright-testing
  1. Настройте аутентификацию:

Microsoft Entra ID — это стандартная и рекомендованная аутентификация для сервиса. Выполните эту команду, чтобы войти:

Примечание: перед выполнением этой команды убедитесь, что у вас установлен Azure CLI.

 az login
  1. Настройте конечную точку региона:

Скопируйте конечную точку региона из портала сервиса и установите её в качестве переменной окружения PLAYWRIGHT_SERVICE_URL в вашей настройке тестов.

Copy workspace url
  1. Запустите тесты на сервисе:

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

npx playwright test --config=playwright.service.config.ts --workers=20

Следующие шаги:

  1. Запуск тестов на разных операционных системах: Измените файл playwright.service.config.ts, чтобы выбрать операционную систему. Узнать больше можно здесь.

  2. Тестирование локально размещенных приложений: Чтобы тестировать локально размещенные или частные приложения, установите параметр exposeNetwork в файле playwright.service.config.ts. Узнать больше можно здесь.

  3. Интеграция MPT с CI-пайплайнами для ускорения выполнения тестов: Интеграция с CI-пайплайнами простая. Вот документация.

Заключение

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


Статья подготовлена в рамках курса "QA Automation Engineer", на котором можно научиться лучшим практикам автотестирования на Java. На странице курса можно ознакомиться с программой и посмотреть записи открытых уроков.

Комментарии (2)


  1. Enigmat
    17.12.2024 11:41

    Ребят, у вас тамм KPI горят перед Новым Годом? Нагнать себе рейтинга за несколько дней, ставить по 15 плюсов публикациям с десятками просмотров - это ок?

    Наверное, придется написать статью с анализом вашей работы. Раньше по 5-6 публикаций в день шпарили, теперь запретили, видимо, так вы накручиваете то, что есть, до небес.


    1. MaxRokatansky
      17.12.2024 11:41

      Добрый день! Попросили нескольких коллег поддержать статью, и, кажется, коллеги тут немного увлеклись. Хотя не все плюсы от них. В любом случае спасибо, что написали, обратим внимание на этот момент