В 2025 году рынок автоматизации тестирования переживает тектонический сдвиг. Playwright, выпущенный Microsoft в 2020 году, за 5 лет превратился из новичка в лидера по популярности, обогнав и Selenium, и Cypress по количеству скачиваний npm. Но означает ли это, что Selenium устарел? И какой инструмент учить, если вы только входите в профессию?
Ключевые цифры 2025 года: 19 миллионов скачиваний Playwright в неделю (npm), 39% доля Selenium на рынке автоматизации, +235% рост Playwright год к году.
Эта статья — детальное сравнение двух главных фреймворков для автоматизации UI-тестирования. Разберём архитектуру, производительность, экосистему, карьерные перспективы и дадим конкретные рекомендации: что учить в зависимости от ваших целей.
1. История и философия: откуда взялись эти инструменты
Selenium: ветеран индустрии (2004)
История Selenium:
2004 — Джейсон Хаггинс создаёт Selenium в ThoughtWorks
2008 — Появляется Selenium WebDriver (Selenium 2)
2018 — WebDriver становится официальной рекомендацией W3C
2021 — Выход Selenium 4 с поддержкой CDP
2025 — Selenium 5 с полной поддержкой WebDriver BiDi
Selenium — это не фреймворк для тестирования, а библиотека для браузерной автоматизации. Его основная задача — предоставить унифицированный способ управления веб-браузером через стандартизированный WebDriver API. Это делает Selenium максимально гибким, но требует дополнительных инструментов для полноценного тестирования.
Playwright: современный подход (2020)
История Playwright:
2017 — Команда разработчиков создаёт Puppeteer в Google
2020 — Та же команда переходит в Microsoft и создаёт Playwright
2022 — Playwright обгоняет Puppeteer по популярности
2024 — Playwright обгоняет Cypress по npm-скачиваниям
2025 — Playwright становится #1 инструментом по опросу TestGuild
Playwright — это полноценный фреймворк для end-to-end тестирования. Он изначально проектировался как комплексное решение: встроенный test runner, отчёты, параллелизация, auto-waiting, API-тестирование — всё «из коробки».
«Playwright — это инструмент, который ощущается так, будто он создан для 2025 года, а не для 2012.»
— BrowserStack Guide
2. Архитектура: почему Playwright быстрее
Ключевое различие между Selenium и Playwright — способ коммуникации с браузером.
Selenium: HTTP-запросы через WebDriver
Архитектура: Тест → HTTP-запрос → WebDriver → Браузер → HTTP-ответ → Тест
Каждая команда отправляется как HTTP-запрос и возвращается как JSON-ответ. Этот «туда-обратно» путь удваивает время на каждую операцию.
Playwright: WebSocket через DevTools Protocol
Архитектура: Тест ↔ WebSocket ↔ Browser DevTools Protocol
Постоянное WebSocket-соединение позволяет браузеру мгновенно передавать события (network, console, exceptions) без ожидания запросов.
Бенчмарки производительности
Тест на 100 итераций (16GB RAM, 2.6 GHz):
| Фреймворк | Время выполнения | Разница |
|---|---|---|
Playwright | 290.37 мс | Базовый |
Selenium | 536.34 мс | +85% медленнее |
В реальных проектах:
Playwright выполняет тестовые наборы на 35-45% быстрее, чем эквивалентные Selenium-тесты. Для команд, запускающих тысячи тестов ежедневно, это означает экономию часов CI/CD-времени.
3. Ключевые возможности: сравнение feature-by-feature
| Возможность | Selenium | Playwright |
|---|---|---|
Языки | Java, Python, C#, Ruby, JS, PHP, Perl | JS/TS, Python, Java, .NET |
Браузеры | Chrome, Firefox, Safari, Edge, IE | Chromium, Firefox, WebKit |
Auto-wait | Нет (ручные waits) | Да (встроенный) |
Параллелизация | Selenium Grid (настройка) | Встроенная |
Network interception | Через CDP (ограниченно) | Полная поддержка |
API testing | Нет (нужен RestAssured) | Встроенный |
Trace Viewer | Нет | Да |
Codegen (запись) | Selenium IDE | playwright codegen |
Mobile emulation | Ограниченно | Полная |
Мобильные приложения | Appium интеграция | Только браузеры |
Auto-wait: почему это критично
Одна из главных проблем Selenium — flaky tests (нестабильные тесты). Элемент может быть ещё не загружен, когда тест пытается с ним взаимодействовать.
Selenium: ручные ожидания
WebDriverWait wait = new WebDriverWait(driver, 10);WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("submit")));element.click();
Playwright: автоматическое ожидание
await page.click('#submit');
// Playwright автоматически ждёт:
// - Элемент видим
// - Элемент стабилен
// - Принимает события
// - Не перекрыт другими
Actionability checks в Playwright: Перед каждым действием Playwright проверяет, что элемент видим, стабилен (не анимируется), не отключён, не перекрыт другими элементами и принимает pointer-события.
4. Доли рынка и популярность в 2025
Глобальная статистика
| Метрика | Selenium | Playwright | Cypress |
|---|---|---|---|
Доля рынка | 39% (25% по 6sense) | 15% | ~10% |
npm downloads/неделя | ~4M | 19M | 6M |
GitHub stars | 32K | 78K | 49K |
Репозитории GitHub | 354K | 424K | — |
Компании (LinkedIn) | 31K+ | — | — |
Рост YoY | Снижение | +235% | Стагнация |
Важный контекст: Selenium лидирует по числу компаний и разработчиков (~15.4M), но большая часть — это поддержка legacy-тестов. Новые проекты всё чаще выбирают Playwright.
Тренды 2025 года
Playwright — #1 инструмент по опросу TestGuild, обогнал Selenium и Cypress
Selenium — остаётся стандартом для enterprise и legacy-проектов
Cypress — пик популярности пройден (2022-2023), сейчас стабилен
WebDriver BiDi — новый стандарт W3C, который объединит преимущества обоих подходов
5. Кто использует что: топовые компании
Playwright: Microsoft, Adobe, Disney+
Playwright используют такие компании как Microsoft, Adobe и Disney+. Это неудивительно: Microsoft — создатель Playwright, а Adobe и Disney+ работают с современными SPA-приложениями.
Netflix: собственный подход (SafeTest)
Netflix создал собственный фреймворк SafeTest, который комбинирует преимущества end-to-end тестирования (Playwright) с компонентным unit-тестированием:
«SafeTest выступает как "клей" между test runner (Jest/Vitest), инструментом браузерной автоматизации (Playwright) и frontend-фреймворком (React). Он позволяет писать тесты, которые работают и в Node.js, и в реальном браузере.»
Selenium: enterprise и финтех
Selenium остаётся стандартом в:
Банки и финтех — строгие compliance-требования, legacy-инфраструктура
Госсектор — необходимость поддержки старых браузеров
Крупный enterprise — существующие инвестиции в Selenium Grid
Мобильное тестирование — интеграция с Appium
Спонсоры Selenium: BrowserStack, Sauce Labs, LambdaTest активно поддерживают развитие Selenium и строят свои платформы вокруг него.
6. Сравнение с Cypress: третий игрок
Нельзя сравнивать Selenium и Playwright без упоминания Cypress — третьего по популярности фреймворка.
| Критерий | Selenium | Playwright | Cypress |
|---|---|---|---|
Архитектура | Вне браузера (WebDriver) | Вне браузера (CDP) | Внутри браузера (DOM) |
Браузеры | Все, включая IE | Chromium, Firefox, WebKit | Chrome, Firefox, Edge (нет Safari) |
Языки | 7+ | 4 | Только JavaScript |
Параллелизация | Grid (сложная) | Встроенная (бесплатно) | Платная (Dashboard) |
Multi-tab/domains | Поддержка | Полная | Ограниченная |
Debugging | Базовый | Trace Viewer, UI mode | Time-travel debugging |
Learning curve | Высокая | Средняя | Низкая |
Когда выбрать Cypress
Подходит для: быстрый старт и прототипирование, небольшие команды с фокусом на Chrome, frontend-разработчики, пишущие тесты, JavaScript/TypeScript-only проекты.
Ограничения: нет нативной поддержки Safari, проблемы с cross-origin тестированием, платная параллелизация, только JavaScript.
7. Selenium 4/5 и WebDriver BiDi: контратака
Selenium не стоит на месте. WebDriver BiDi (BiDirectional) — это новый стандарт W3C, который приносит в Selenium преимущества, ранее доступные только в Playwright.
Что такое WebDriver BiDi
WebDriver BiDi — стандарт, позволяющий двустороннюю real-time коммуникацию между тестами и браузером через WebSocket. Это означает:
Events push — браузер сам отправляет события (network, console, exceptions)
Network interception — перехват и модификация запросов
Console logging — мгновенный доступ к console.log
Cross-browser — в отличие от CDP, работает во всех браузерах
Текущий статус (2025)
| Фреймворк | Поддержка BiDi |
|---|---|
Selenium | Полная (начиная с 4.1.2, расширено в 5.x) |
Playwright | Экспериментальная (в разработке) |
WebDriverIO | Поддержка |
Puppeteer | В разработке |
Перспектива: WebDriver BiDi может уравнять возможности Selenium и Playwright. Однако стандарт ещё в разработке, и полная поддержка всех браузеров займёт время.
8. API Testing: неожиданное преимущество Playwright
Playwright — это не только UI-автоматизация. Встроенная поддержка API-тестирования делает его универсальным инструментом.
REST API Testing
// Playwright: API тестирование без браузераconst { request } = require('@playwright/test');test('API: создание пользователя', async () => {const context = await request.newContext({baseURL: 'https://api.example.com'});const response = await context.post('/users', {data: { name: 'John', email: 'john@example.com' }});expect(response.ok()).toBeTruthy();expect(await response.json()).toHaveProperty('id');});
GraphQL Testing
// Playwright: GraphQL запросыtest('GraphQL: получение списка товаров', async ({ request }) => {const response = await request.post('/graphql', {data: {query: `query GetProducts { products(limit: 10) { id name price } }`}});const { data } = await response.json();expect(data.products).toHaveLength(10);});
Selenium: нужны дополнительные библиотеки
Для API-тестирования в Selenium-стеке используют:
RestAssured (Java)
Requests (Python)
Axios/SuperTest (JavaScript)
Преимущество Playwright: Один инструмент для UI и API тестов означает единую инфраструктуру, общие утилиты и проще CI/CD.
9. CI/CD интеграция: практическое сравнение
Playwright: минимальная конфигурация
GitHub Actions
# .github/workflows/playwright.ymlname: Playwright Testson: [push, pull_request]jobs:test:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v4- uses: actions/setup-node@v4- run: npm ci- run: npx playwright install --with-deps- run: npx playwright test
Docker
# Официальный образ со всеми браузерамиFROM mcr.microsoft.com/playwright:v1.57.0-nobleWORKDIR /appCOPY package*.json ./RUN npm ciCOPY . .CMD ["npx", "playwright", "test"]
Selenium: больше настроек
Jenkins Pipeline
pipeline {agent anystages {stage('Setup') {steps {sh 'wget https://chromedriver.storage.googleapis.com/...'sh 'chmod +x chromedriver'}}stage('Test') {steps {sh 'mvn test -Dwebdriver.chrome.driver=./chromedriver'}}}}
Сравнение CI/CD опыта
| Аспект | Playwright | Selenium |
|---|---|---|
Установка | 1 команда (npm i + install) | Отдельные драйверы для каждого браузера |
Docker | Официальные образы от Microsoft | Selenium Hub + Node images |
Параллелизация | --workers=4 (встроено) | Selenium Grid (отдельная инфраструктура) |
Отчёты | HTML, JSON, Trace Viewer | Нужен Allure/ExtentReports |
10. Зарплаты и карьера: что выгоднее учить
Зарплаты автоматизаторов в 2025
США
| Уровень | Зарплата ($/год) |
|---|---|
| Entry-level | $61K - $97K |
| Middle (2-4 года) | $102K - $116K |
| Senior (5+ лет) | $150K - $187K |
Россия
| Уровень | Зарплата (₽/мес) |
|---|---|
| Junior | 60K - 100K |
| Middle | 150K - 200K |
| Senior | 300K - 450K |
Playwright skills = премиум к зарплате
Вакансии с Playwright платят на 9% больше ($9,610/год), чем средняя позиция QA Automation Engineer.
Востребованные стеки
| Стек | Языки | Тренд |
|---|---|---|
Playwright + TypeScript | JavaScript/TypeScript | ↑ Быстрый рост |
Selenium + Java | Java + TestNG/JUnit | → Стабильно (enterprise) |
Playwright + Python | Python + pytest | ↑ Рост |
Selenium + Python | Python + pytest | → Стабильно |
Cypress | JavaScript | → Стагнация |
11. Что учить: рекомендации по уровням
Начинающий автоматизатор (0-1 год)
Рекомендация: начните с Playwright
Почему: более современный и понятный API, меньше boilerplate-кода, auto-wait снижает количество flaky tests, отличная документация и обучающие ресурсы, codegen позволяет записывать тесты, востребован на рынке с премиумом к зарплате.
Roadmap для начинающего
Изучить основы JavaScript/TypeScript или Python
Пройти курс Microsoft Learn: Build with Playwright
Изучить Test Automation University (бесплатно)
Написать тесты для pet-проекта
Освоить Page Object Model
Настроить CI/CD (GitHub Actions)
Middle-автоматизатор (1-3 года)
Рекомендация: изучите оба инструмента
На уровне Middle вам нужно уметь работать с legacy-кодом и принимать архитектурные решения. Многие компании имеют существующие Selenium-тесты.
Что изучить: глубокое понимание Playwright (API testing, network mocking), базовое знание Selenium (чтение и поддержка), Selenium Grid для распределённого тестирования, Docker-контейнеризация тестов, Allure/ReportPortal для отчётов, Performance testing (k6, Artillery).
Senior/Lead (3+ года)
Рекомендация: владейте всем стеком + архитектура
Что изучить: проектирование тестовой архитектуры, миграция с Selenium на Playwright, WebDriver BiDi (будущее), Appium для мобильного тестирования, Visual regression testing, AI/ML в тестировании.
12. Практическое сравнение: один и тот же тест
Задача: логин + проверка dashboard
Selenium (Java)
@Testpublic void testLogin() {WebDriver driver = new ChromeDriver();WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));try {driver.get("https://app.example.com/login");wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("email"))).sendKeys("user@example.com");driver.findElement(By.id("password")).sendKeys("password123");driver.findElement(By.cssSelector("button[type='submit']")).click();wait.until(ExpectedConditions.urlContains("/dashboard"));WebElement welcomeText = wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("welcome")));Assert.assertTrue(welcomeText.getText().contains("Welcome"));} finally {driver.quit();}}
Playwright (TypeScript)
test('login and verify dashboard', async ({ page }) => {await page.goto('https://app.example.com/login');await page.fill('#email', 'user@example.com');await page.fill('#password', 'password123');await page.click('button[type="submit"]');await expect(page).toHaveURL(/dashboard/);await expect(page.locator('.welcome')).toContainText('Welcome');});
Анализ различий
| Аспект | Selenium | Playwright |
|---|---|---|
Строк кода | ~20 | ~8 |
Явные waits | 3 шт. | 0 (auto-wait) |
Cleanup | try/finally + quit() | Автоматический |
Assertions | Assert.assertTrue (generic) | expect (web-specific) |
13. Миграция с Selenium на Playwright
Если ваша команда решила мигрировать — вот практические шаги.
Стратегия миграции
Новые тесты — пишите на Playwright
Критичные тесты — переносите постепенно
Legacy — оставьте на Selenium (поддержка)
Параллельный запуск — оба фреймворка в CI
Типичные изменения
| Selenium | Playwright |
|---|---|
|
|
|
|
|
|
| Не нужно (auto-wait) |
|
|
|
|
Совет: Не делайте «big bang» миграцию. Параллельное существование Selenium и Playwright — нормальная практика для переходного периода.
14. Чек-лист: какой инструмент выбрать
Выбирайте Playwright, если:
Новый проект без legacy-тестов
Современный SPA (React, Vue, Angular)
Нужна скорость выполнения тестов
Требуется API-тестирование в том же фреймворке
Работаете с TypeScript/JavaScript или Python
Важна простота CI/CD интеграции
Нужен modern debugging (Trace Viewer)
Выбирайте Selenium, если:
Существующая Selenium-инфраструктура
Требуется поддержка Java, C#, Ruby, PHP
Нужна интеграция с Appium (mobile)
Legacy-браузеры (IE, старые версии)
Selenium Grid уже настроен
Enterprise compliance требует стандартизации
Выбирайте Cypress, если:
Небольшой frontend-проект
Команда работает только с JavaScript
Достаточно Chrome-based тестирования
Важен быстрый onboarding для frontend-разработчиков
Заключение
В 2025 году рынок автоматизации тестирования находится в точке перелома.
Playwright: #1 по популярности (TestGuild), 19M скачиваний в неделю, +235% рост год к году, выбор для новых проектов.
Selenium: 39% доля рынка, 15.4M разработчиков, стандарт для enterprise, WebDriver BiDi как ответ на вызовы.
Итоговые рекомендации
| Ситуация | Рекомендация |
|---|---|
| Начинающий автоматизатор | Playwright (потом изучите Selenium) |
| Новый проект | Playwright |
| Enterprise/legacy | Selenium (с планом на BiDi) |
| Мобильное тестирование | Selenium + Appium |
| Максимальная скорость | Playwright |
| Java/C# команда | Selenium или Playwright (.NET/Java) |
«Лучший инструмент — тот, который решает задачи вашей команды. Playwright побеждает в современных метриках, но 31,000+ компаний продолжают успешно использовать Selenium. Знание обоих — ваше конкурентное преимущество.»
Прогнозируемый рост спроса на QA Automation специалистов до 2030 года составляет 20% (U.S. Bureau of Labor Statistics).
А лучшие вакансии для тестировщиков ищите на hirehi.ru