Playwright vs Cypress vs Selenium в 2026: какой фреймворк для E2E-тестирования выбрать
Содержание
E2E-тестирование в 2026 году — это уже не один Selenium на все случаи жизни. За последние три года Playwright совершил стремительный рывок и стал инструментом по умолчанию для новых проектов, Cypress удерживает позиции в экосистеме фронтенд-разработки, а Selenium продолжает доминировать в enterprise-сегменте с 26.1% рынка инструментов тестирования и более 55 000 компаний-пользователей.
Эта статья — детальное сравнение Playwright 1.57+, Cypress 13 и Selenium 4.33 для QA-инженеров, тестировщиков и тимлидов, которые выбирают фреймворк для автоматизации E2E-тестов. Мы разберём архитектуру, производительность, поддержку браузеров, языки программирования, экосистему и стоимость.
Краткий обзор участников
Playwright — молниеносный и современный
Playwright создан Microsoft и выпущен в 2020 году. К 2026 году он стал самым быстрорастущим фреймворком для E2E-тестирования. На GitHub microsoft/playwright набрал 74 000+ звёзд, а инструмент используется в более чем 412 000 репозиториев. Текущая версия — Playwright 1.57+.
Playwright поддерживает четыре языка: JavaScript/TypeScript, Python, C# и Java. Он работает с тремя движками браузеров: Chromium, Firefox и WebKit (движок Safari). Начиная с v1.57, Playwright переключился с Chromium на Chrome for Testing — реальные билды Chrome, что ещё больше приближает тесты к тому, что видит пользователь.
Ключевые инновации 2026 года:
- Playwright Agents — три AI-агента для автоматизации: planner (исследует приложение и создаёт план тестов), generator (превращает план в тестовые файлы), healer (запускает и чинит падающие тесты)
- Playwright MCP Server — интеграция с AI-ассистентами через Model Context Protocol
- Auto-wait — интеллектуальное ожидание, проверяющее что элемент прикреплён к DOM, видим, стабилен, принимает события и активен
Cypress — DX для фронтенд-разработчиков
Cypress появился в 2014 году как альтернатива Selenium с акцентом на developer experience. На GitHub cypress-io/cypress набрал около 48 000 звёзд. Cypress поддерживает только JavaScript и TypeScript.
Cypress работает внутри браузера — его тестовый раннер запускается в том же event loop, что и тестируемое приложение. Это обеспечивает уникальный DX: мгновенная обратная связь, time-travel debugging (шаг назад по каждой команде), автоматические скриншоты и видео.
Поддержка браузеров: Chrome (Chromium), Firefox и экспериментальная поддержка WebKit. Мобильного тестирования нет.
Cypress Cloud — коммерческий сервис: от $75/мес (Team) до $300/мес (Business), предоставляющий параллелизацию тестов, flake detection, Smart Orchestration и UI Coverage. Базовый фреймворк бесплатен и open-source.
В 2026 году Cypress добавил поддержку Angular 21 в component testing, zoneless-режим для Angular-компонентов и улучшенный Selector Playground с автоматическим интерактивным режимом.
Selenium — ветеран enterprise-тестирования
Selenium появился в 2004 году и отмечает 22 года существования. На GitHub SeleniumHQ/selenium — 29 000 звёзд, 7 900 форков. Текущая версия — Selenium 4.33.0. Selenium удерживает 26.1% рынка инструментов тестирования и используется 55 785+ компаниями по всему миру.
Selenium поддерживает максимальное количество языков: Java, Python, C#, Ruby и JavaScript. Покрытие браузеров — самое широкое: Chrome, Firefox, Safari, Edge и Internet Explorer (через legacy-драйверы), включая мобильные платформы через Appium.
Главное техническое обновление — WebDriver BiDi (bidirectional protocol): двунаправленная связь с браузером, позволяющая перехватывать сетевые запросы, слушать консольные логи, отслеживать изменения DOM и эмулировать сетевые условия без внешних инструментов. WebDriver BiDi — это ответ Selenium на те возможности, которые Playwright предоставлял с первого дня через CDP.
Архитектура: три разных подхода
Архитектурные различия определяют поведение, скорость и ограничения каждого фреймворка.
Playwright: WebSocket + многопроцессность
Playwright общается с браузерами через WebSocket-соединения (CDP для Chromium, собственные протоколы для Firefox и WebKit). Каждый тест запускается в изолированном Browser Context — лёгкой сессии браузера с отдельными cookies, localStorage и сетевым стеком. Это позволяет запускать десятки параллельных тестов без конфликтов.
// Playwright — изолированные контексты для параллельных тестов
import { test } from '@playwright/test';
test('user login', async ({ page }) => {
await page.goto('https://app.example.com/login');
await page.fill('[data-testid="email"]', 'user@example.com');
await page.fill('[data-testid="password"]', 'password');
await page.click('button[type="submit"]');
await page.waitForURL('**/dashboard');
await expect(page.locator('h1')).toHaveText('Dashboard');
});
Cypress: in-browser execution
Cypress запускает тесты внутри браузера, в том же JavaScript-контексте, что и приложение. Это даёт прямой доступ к DOM, сетевым запросам и состоянию приложения без промежуточного слоя.
// Cypress — тест в том же контексте, что и приложение
describe('Login', () => {
it('should log in successfully', () => {
cy.visit('/login');
cy.get('[data-testid="email"]').type('user@example.com');
cy.get('[data-testid="password"]').type('password');
cy.get('button[type="submit"]').click();
cy.url().should('include', '/dashboard');
cy.get('h1').should('have.text', 'Dashboard');
});
});
Преимущество: мгновенная обратная связь, автоматическое ожидание команд, time-travel debugging. Недостаток: тесты ограничены одним табом, нет поддержки нескольких вкладок, окон или iframe между доменами.
Selenium: WebDriver протокол
Selenium использует WebDriver — стандартизованный W3C-протокол для управления браузерами. Каждая команда — это HTTP-запрос к драйверу браузера (ChromeDriver, GeckoDriver и т.д.). С появлением WebDriver BiDi добавлена двунаправленная связь для event-driven операций.
# Selenium — Python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://app.example.com/login")
email = driver.find_element(By.CSS_SELECTOR, '[data-testid="email"]')
email.send_keys("user@example.com")
password = driver.find_element(By.CSS_SELECTOR, '[data-testid="password"]')
password.send_keys("password")
driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]').click()
WebDriverWait(driver, 10).until(
EC.url_contains("/dashboard")
)
assert driver.find_element(By.TAG_NAME, "h1").text == "Dashboard"
driver.quit()
Архитектурное преимущество: полная гибкость — любой язык, любой браузер, любая ОС. Недостаток: больше шаблонного кода, явные ожидания, больше конфигурации.
Производительность: бенчмарки 2026 года
Скорость выполнения тестов напрямую влияет на CI/CD-пайплайны и feedback loop разработчика.
| Метрика | Playwright | Cypress | Selenium |
|---|---|---|---|
| Среднее время одной задачи | 290 мс | ~700 мс | 536 мс |
| Средний тестовый сценарий (5 шагов) | 4.5 сек | 9.4 сек | 4.6 сек |
| Параллельное выполнение | Встроенное (workers) | Cypress Cloud (платно) | Selenium Grid |
| Снижение flaky-тестов | 60% меньше (auto-wait) | Flake detection (Cloud) | Зависит от ожиданий |
| CI/CD setup overhead | Минимальный (60% меньше vs Selenium Grid) | Минимальный | Значительный (Grid) |
Playwright лидирует благодаря WebSocket-архитектуре и auto-wait: не нужно писать явные ожидания, фреймворк сам проверяет готовность элементов. Это снижает количество flaky-тестов на 60% по бенчмаркам 2026 года.
Cypress медленнее в абсолютных цифрах (в 2× по сравнению с Playwright в одном и том же сценарии), но его in-browser архитектура обеспечивает стабильность — тесты редко падают из-за timing issues.
Selenium показывает результаты, сопоставимые с Playwright для отдельных операций, но настройка параллелизации через Selenium Grid значительно сложнее и требует больше инфраструктуры.
Поддержка языков и браузеров
| Критерий | Playwright | Cypress | Selenium |
|---|---|---|---|
| Языки | JS/TS, Python, C#, Java | JS/TS только | Java, Python, C#, Ruby, JS |
| Chrome/Chromium | Да (Chrome for Testing) | Да | Да |
| Firefox | Да | Да | Да |
| WebKit/Safari | Да (нативный) | Экспериментально | Да (через SafariDriver) |
| Edge | Да (Chromium) | Да (Chromium) | Да |
| Internet Explorer | Нет | Нет | Да (legacy) |
| Мобильные | Эмуляция (device, touch, geo) | Нет | Appium (реальные устройства) |
| Несколько вкладок/окон | Да | Нет | Да |
| iframes кросс-домен | Да | Ограничено | Да |
Selenium выигрывает по ширине покрытия: если нужен IE, реальные мобильные устройства через Appium или экзотические браузеры — альтернатив нет.
Playwright предоставляет лучший баланс: три главных движка (Chromium, Firefox, WebKit), мобильная эмуляция и полная поддержка сложных сценариев (multi-tab, iframes).
Cypress ограничен: только JS/TS, отсутствие multi-tab и ограниченная поддержка WebKit делают его непригодным для кросс-браузерного тестирования.
Экосистема и интеграции
Playwright
- Playwright Test — полноценный тестовый раннер с параллелизацией, retries, fixtures, HTML-отчётами
- Codegen — генерация тестов записью действий в браузере
- Trace Viewer — детальный анализ каждого шага с DOM-снимками, сетевыми запросами и консольными логами
- VS Code расширение — запуск, отладка и запись тестов прямо из IDE
- Playwright MCP — интеграция с AI-агентами через Model Context Protocol
- Playwright Agents — AI-автоматизация создания и починки тестов
- CI/CD: встроенные Docker-образы, GitHub Actions template, Azure Pipelines
# Playwright — генерация теста записью
npx playwright codegen https://app.example.com
# Запуск с HTML-отчётом
npx playwright test --reporter=html
# Просмотр трейса
npx playwright show-trace trace.zip
Cypress
- Cypress App — интерактивный раннер с time-travel debugging, скриншотами, видео
- Component Testing — тестирование React, Vue, Angular, Svelte компонентов в изоляции
- Cypress Cloud (платный): параллелизация, Smart Orchestration, Flake Detection, UI Coverage, Spec Prioritization
- Cypress Studio — запись тестов через UI (бета)
- Плагины: 300+ community-плагинов
- CI/CD: готовые Docker-образы, интеграции с GitHub Actions, CircleCI, Jenkins
# Cypress — запуск в интерактивном режиме
npx cypress open
# Запуск в headless
npx cypress run --browser chrome --record --key YOUR_KEY
# Component testing
npx cypress open --component
Selenium
- Selenium Grid — распределённое выполнение на нескольких машинах
- Selenium IDE — расширение для записи и воспроизведения тестов в браузере
- WebDriver BiDi — двунаправленная связь для перехвата сети, логов и событий
- Appium — мобильное тестирование на реальных устройствах
- Облачные платформы: BrowserStack, Sauce Labs, LambdaTest — тысячи комбинаций устройств
- CI/CD: интеграция с любой платформой через WebDriver
# Selenium Grid — запуск хаба
java -jar selenium-server-4.33.0.jar hub
# Запуск ноды
java -jar selenium-server-4.33.0.jar node --detect-drivers true
# Или через Docker Compose
docker compose -f docker-compose-v3.yml up -d
Стоимость
| Аспект | Playwright | Cypress | Selenium |
|---|---|---|---|
| Фреймворк | Бесплатно (Apache 2.0) | Бесплатно (MIT) | Бесплатно (Apache 2.0) |
| Параллелизация | Встроенная (бесплатно) | Cypress Cloud (от $75/мес) | Selenium Grid (self-hosted) |
| Облачный сервис | Нет (сторонние: BrowserStack) | Cypress Cloud ($75–$300+/мес) | BrowserStack, Sauce Labs (от $29/мес) |
| Dashboard и аналитика | HTML-отчёт (бесплатно) | Cypress Cloud (платно) | Сторонние инструменты |
| Flake detection | Retries + трейсы (бесплатно) | Cypress Cloud (платно) | Внешние инструменты |
| Component testing | Experimental | Встроенное | Нет |
Playwright — самый экономичный: параллелизация, отчёты, трейсы и отладка включены в бесплатный open-source фреймворк. Нет необходимости в платной облачной платформе для большинства задач.
Cypress — ловушка бесплатного tier-а: базовый фреймворк бесплатен, но для реального CI/CD с параллелизацией и аналитикой требуется Cypress Cloud от $75/мес. Для команд из 40+ человек Business-план стоит $300+/мес.
Selenium — бесплатен как фреймворк, но Selenium Grid требует инфраструктуры (серверы, Docker, обслуживание). Облачные платформы (BrowserStack, Sauce Labs) решают проблему, но за деньги.
Когда выбрать Playwright
Playwright — лучший выбор для большинства новых проектов в 2026 году:
- Новые проекты — Playwright стал стандартом для greenfield E2E-автоматизации; AI-агенты и MCP-интеграция ещё больше упрощают создание тестов
- Кросс-браузерное тестирование — три движка (Chromium, Firefox, WebKit) покрывают 95%+ пользователей
- Мультиязычные команды — поддержка Python, C#, Java кроме JS/TS
- Быстрый CI/CD — встроенная параллелизация и минимальный overhead для настройки
- Сложные сценарии — multi-tab, iframes, сетевой перехват, мобильная эмуляция
- Бюджет — всё включено бесплатно, нет скрытых платных функций
Когда выбрать Cypress
Cypress остаётся хорошим выбором в определённых сценариях:
- Фронтенд-ориентированные команды — если команда состоит из React/Vue/Angular-разработчиков, которые пишут тесты как часть разработки
- Component testing — тестирование компонентов в изоляции — зрелая функция Cypress
- Time-travel debugging — уникальная возможность шагать по каждой команде теста с визуализацией состояния
- Приоритет DX над покрытием — если важнее удобство написания тестов, чем кросс-браузерность
- Существующие Cypress-проекты — миграция на Playwright оправдана, но не обязательна для стабильных тестовых наборов
Когда выбрать Selenium
Selenium незаменим в следующих сценариях:
- Enterprise с legacy-требованиями — поддержка IE, специфических корпоративных браузеров, сложных compliance-требований
- Мобильное тестирование на реальных устройствах — Appium + Selenium — единственный путь для тестирования на реальных iPhone, Android-устройствах через облачные фермы
- Максимальная языковая гибкость — Ruby, Java-команды, которые не хотят переходить на JS/TS
- Существующая Selenium-инфраструктура — тысячи тестов, настроенный Grid, обученная команда — миграция может быть неоправданной
- Регулируемые отрасли — 22 года истории, W3C-стандарт, максимальная аудируемость
Сводная таблица сравнения
| Критерий | Playwright 1.57+ | Cypress 13 | Selenium 4.33 |
|---|---|---|---|
| Первый релиз | 2020 | 2014 | 2004 |
| Разработчик | Microsoft | Cypress.io | Community (SeleniumHQ) |
| Лицензия | Apache 2.0 | MIT | Apache 2.0 |
| Языки | JS/TS, Python, C#, Java | JS/TS | Java, Python, C#, Ruby, JS |
| Браузеры | Chromium, Firefox, WebKit | Chrome, Firefox, WebKit (exp.) | Chrome, Firefox, Safari, Edge, IE |
| Скорость (avg задача) | 290 мс | ~700 мс | 536 мс |
| Параллелизация | Встроенная (бесплатно) | Cypress Cloud (платно) | Selenium Grid |
| Auto-wait | Нативный | Нативный | Нет (явные ожидания) |
| Multi-tab / windows | Да | Нет | Да |
| Мобильное тестирование | Эмуляция | Нет | Appium (реальные устройства) |
| Component testing | Experimental | Встроенное | Нет |
| AI-интеграция | Playwright Agents, MCP | Нет | Нет |
| Сетевой перехват | Нативный | Нативный | WebDriver BiDi |
| Отчёты | HTML (бесплатно) | Cypress Cloud (платно) | Сторонние |
| GitHub Stars | 74 000+ | ~48 000 | 29 000 |
| Рыночная доля | Быстро растёт | Стабильна | 26.1% |
Заключение
В 2026 году расстановка сил в E2E-тестировании определилась чётко.
Playwright — это новый стандарт. 74 000+ звёзд на GitHub, самая высокая скорость выполнения, бесплатная параллелизация, поддержка четырёх языков, трёх движков браузеров и AI-интеграция — всё это делает Playwright очевидным выбором для новых проектов. Microsoft активно инвестирует в развитие: Playwright Agents и MCP Server сигнализируют, что будущее E2E-тестирования — это AI-ассистированная автоматизация, и Playwright лидирует в этом направлении.
Cypress сохраняет нишу в фронтенд-разработке. Time-travel debugging, component testing и интуитивный DX делают его привлекательным для React/Vue/Angular-команд. Но ограничение одним языком (JS/TS), отсутствие multi-tab и платная параллелизация сужают его применимость. Cypress — хороший инструмент, но уже не лучший в своём классе.
Selenium остаётся незаменимым для enterprise. 26% рынка, 22 года истории, поддержка пяти языков и всех браузеров (включая IE и мобильные через Appium) — этого не может предложить ни один конкурент. WebDriver BiDi сокращает технологический разрыв с Playwright. Для новых проектов Selenium уже не рекомендация по умолчанию, но для миграции существующих enterprise-систем альтернативы может не быть.
Прагматичная рекомендация: Playwright для новых проектов (быстро, бесплатно, современно), Cypress для фронтенд-компонентов (DX, component testing), Selenium для enterprise-legacy (браузеры, языки, Appium).
Источники
- Playwright Release Notes — Playwright Docs
- Cypress Changelog — Cypress Documentation
- Selenium 4.26 Released — 20 Years of Innovation — Selenium Blog
- Selenium vs Playwright vs Cypress: Complete Comparison Guide for 2026 — Master Software Testing
- Selenium vs Cypress vs Playwright: Best Testing Tool in 2026 — TestDino
- Selenium Market Share in Testing and QA — 6sense
- Cypress Cloud Pricing — Cypress.io
- Playwright GitHub Repository — Microsoft
- Selenium Alternatives in 2026: Playwright, Cypress & More — Quash