Phone icon Связаться с нами

QA и тестирование

Что такое Playwright?

Playwright — это современный инструмент от Microsoft для автоматизации браузеров и E2E-тестирования. Он управляет Chromium, Firefox и WebKit через один API и сразу решает главную проблему автотестов — нестабильность из-за проблем со временем ожидания.

Главная особенность — автоматическое ожидание: перед каждым действием Playwright сам ждёт, пока элемент появится и станет доступен для нажатия. Поэтому не нужны ручные паузы, из-за которых тесты падают без видимой причины.

В комплекте есть удобные инструменты: запись сценария кликами, трассировка упавшего теста с историей шагов и скриншотами, параллельный запуск, перехват сетевых запросов. Тесты чаще всего пишут на TypeScript или Python.

Где применяется

Playwright чаще выбирают в продуктовых командах и новых проектах, где фронтенд написан на JavaScript или TypeScript: тесты хранятся в том же репозитории и пишутся на том же языке, что и приложение. Один набор проверок работает в Chromium, Firefox и WebKit без изменений.

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

Пример

Тест открывает каталог, применяет фильтр по цене и проверяет, что в выдаче нет товаров дороже указанной суммы. Playwright сам ждёт обновлённый список, так что писать паузы вручную не нужно.

import { test, expect } from '@playwright/test';

test('submits a consultation request', async ({ page }) => {
  await page.goto('/glossary');
  await page.getByRole('button', { name: 'Записаться' }).click();
  await page.getByLabel('Имя').fill('Анна');
  await page.getByLabel('Телефон').fill('+380991234567');
  await page.getByRole('button', { name: 'Отправить' }).click();
  await expect(page.getByText('Спасибо за заявку')).toBeVisible();
});
Проверка формы на Playwright: встроенное ожидание убирает необходимость в паузах.

Playwright или Selenium

Selenium — стандарт отрасли с поддержкой наибольшего количества языков и браузеров, его чаще используют в крупных и старых проектах, особенно на Java. Playwright моложе, быстрее запускается и стабильнее по умолчанию, поэтому его чаще выбирают для новых проектов. Для карьеры в QA Automation полезно знать оба.

Частые вопросы

Чем Playwright лучше Selenium?

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

На каких языках можно писать тесты на Playwright?

Официально поддерживаются TypeScript и JavaScript, Python, Java и C#. Полнее и раньше всего новые возможности появляются в версии для TypeScript — её использует большинство команд, и именно к ней большая часть документации и примеров.

Подходит ли Playwright для тестирования API?

Да, в нём есть встроенный клиент для HTTP-запросов. Это удобно в смешанных сценариях: подготовить данные через API, а потом проверить, как они отображаются в интерфейсе. Для полноценного набора API-тестов чаще используют специализированные инструменты.

Стоит ли переводить существующие тесты с Selenium?

Только если есть реальные проблемы: постоянные падения, долгие запуски, сложная поддержка. Переписывание большого набора тестов занимает недели. Часто оставляют существующие тесты, а всё новое пишут на Playwright, постепенно меняя соотношение.

Обучение тестированию в OWU

Освойте профессию QA-инженера на практических курсах с менторами и реальными проектами.

Выбрать курс