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 или Selenium
Selenium — стандарт отрасли с поддержкой наибольшего количества языков и браузеров, его чаще используют в крупных и старых проектах, особенно на Java. Playwright моложе, быстрее запускается и стабильнее по умолчанию, поэтому его чаще выбирают для новых проектов. Для карьеры в QA Automation полезно знать оба.
Частые вопросы
Чем Playwright лучше Selenium?
Прежде всего встроенным ожиданием: он сам ждёт, пока элемент станет видимым и активным, и это убирает главную причину нестабильных тестов. Кроме того, он проще устанавливается, работает с тремя браузерными движками и имеет удобную трассировку ошибок.
На каких языках можно писать тесты на Playwright?
Официально поддерживаются TypeScript и JavaScript, Python, Java и C#. Полнее и раньше всего новые возможности появляются в версии для TypeScript — её использует большинство команд, и именно к ней большая часть документации и примеров.
Подходит ли Playwright для тестирования API?
Да, в нём есть встроенный клиент для HTTP-запросов. Это удобно в смешанных сценариях: подготовить данные через API, а потом проверить, как они отображаются в интерфейсе. Для полноценного набора API-тестов чаще используют специализированные инструменты.
Стоит ли переводить существующие тесты с Selenium?
Только если есть реальные проблемы: постоянные падения, долгие запуски, сложная поддержка. Переписывание большого набора тестов занимает недели. Часто оставляют существующие тесты, а всё новое пишут на Playwright, постепенно меняя соотношение.
Обучение тестированию в OWU
Освойте профессию QA-инженера на практических курсах с менторами и реальными проектами.
Выбрать курс