Популярные инструменты автоматизации: обзор Selenium, Cypress и Playwright — что это и для чего
Почему это важно?
Представьте, что вам нужно каждый день проверять, правильно ли работает кнопка «Войти» на сайте. Вы открываете браузер, вводите логин и пароль, нажимаете кнопку — и смотрите, что произошло. Завтра — то же самое. Послезавтра — снова. Это утомительно, долго и скучно.
Именно здесь на помощь приходит автоматизация тестирования — то есть использование специальных программ, которые делают всю эту работу вместо вас. Они сами открывают браузер, сами нажимают кнопки, сами проверяют результат.
Но какой именно программой воспользоваться? Сегодня мы познакомимся с тремя самыми популярными инструментами для автоматизации тестирования веб-сайтов: Selenium, Cypress и Playwright. Вы узнаете, что это такое, зачем они нужны и чем отличаются — даже если вы ни разу не писали код.
Теория
Что такое инструмент автоматизации?
Инструмент автоматизации (англ. automation tool) — это специальная программа, которая умеет управлять браузером: открывать сайты, нажимать на кнопки, заполнять формы, читать текст на странице. Всё то, что обычно делает человек-тестировщик — только быстрее и без усталости.
Хорошая аналогия: представьте робота-помощника на заводе. Вы один раз показываете ему, как собирать деталь, — и дальше он делает это тысячи раз без ошибок. Инструменты автоматизации — это такие «роботы» для браузера.
Что такое браузер и зачем им управлять?
Браузер (например, Google Chrome, Firefox, Safari) — это программа, через которую вы смотрите сайты в интернете. Когда мы тестируем веб-сайт, нам нужно проверить, как он ведёт себя именно в браузере: правильно ли отображается, работают ли кнопки, появляются ли нужные сообщения.
Инструменты автоматизации умеют управлять браузером программно — то есть через код или специальные команды, без участия человека.
Инструмент 1: Selenium
Что это такое?
Selenium — это самый старый и самый известный инструмент автоматизации браузеров. Он появился ещё в 2004 году и сегодня используется в тысячах компаний по всему миру.
Слово Selenium — это название химического элемента (селен). История гласит, что создатели назвали инструмент так в шутку: конкурирующий продукт назывался Mercury («Меркурий»), а селен — известное «противоядие от ртути» в химии.
Как он работает?
Selenium работает через специальную прослойку, которая называется WebDriver (веб-драйвер). Представьте, что вы хотите управлять автомобилем, но сидите не в нём, а в соседней комнате. WebDriver — это длинная рука, которая тянется из вашей комнаты к рулю и педалям машины.
Вы пишете команды на языке программирования (например, Python или Java), WebDriver переводит их в действия браузера.
Ваш код → WebDriver → Браузер (Chrome, Firefox и т.д.) → Сайт
Сильные стороны Selenium
- Очень давно существует — огромное сообщество, миллионы примеров в интернете
- Поддерживает много браузеров — Chrome, Firefox, Safari, Edge и другие
- Работает с разными языками программирования — Python, Java, C#, JavaScript и другие
- Бесплатный — открытый исходный код (это значит, что любой может использовать его без оплаты)
Слабые стороны Selenium
- Настройка может быть сложной для новичков
- Тесты иногда работают нестабильно (падают без очевидной причины)
- Нет встроенных инструментов для красивых отчётов
Кто использует Selenium?
Selenium — это выбор крупных компаний с большими командами. Если вы видите вакансию «QA-инженер», там очень часто упоминается именно Selenium.
Инструмент 2: Cypress
Что это такое?
Cypress — более молодой инструмент, появившийся в 2014 году. Он был создан специально для тестирования современных веб-приложений и с самого начала разрабатывался так, чтобы быть удобным для разработчиков и тестировщиков.
Как он работает?
Cypress работает внутри браузера, а не снаружи него. Это ключевое отличие от Selenium!
Представьте разницу так:
- Selenium — это как удалённое управление телевизором с дивана. Команды идут издалека.
- Cypress — это как если бы вы сами сидели внутри телевизора и нажимали кнопки изнутри.
Из-за этого Cypress работает быстрее и стабильнее для многих задач.
Для написания тестов в Cypress используется язык JavaScript (один из самых популярных языков программирования для веба).
Сильные стороны Cypress
- Очень простая установка — за несколько минут можно написать первый тест
- Наглядный интерфейс — вы видите в реальном времени, как выполняется тест: шаг за шагом
- Автоматические скриншоты и видео — если тест упал, Cypress сохранит запись того, что произошло
- Хорошая документация — официальные руководства написаны понятным языком
- Бесплатный в базовой версии
Слабые стороны Cypress
- Работает только с JavaScript
- Поддерживает не все браузеры — Safari поддерживается ограниченно
- Не очень подходит для тестирования мобильных приложений
Кто использует Cypress?
Cypress популярен в стартапах и компаниях, где разработчики и тестировщики работают бок о бок. Его часто используют фронтенд-разработчики (те, кто делает визуальную часть сайтов), чтобы тестировать свой код.
Инструмент 3: Playwright
Что это такое?
Playwright — самый молодой из трёх инструментов, его создала компания Microsoft в 2020 году. Он вобрал в себя лучшее из Selenium и Cypress и избавился от многих их недостатков.
Слово playwright по-английски означает «драматург» (человек, который пишет пьесы). Видимо, создатели имели в виду, что вы — автор сценария, а браузер — актёр, который его исполняет.
Как он работает?
Playwright, как и Selenium, работает снаружи браузера, но использует более современные протоколы (протокол — это набор правил для общения между программами). Он умеет управлять браузером очень точно и быстро.
Поддерживает несколько языков программирования: JavaScript, Python, Java, C#.
Сильные стороны Playwright
- Поддерживает все основные браузеры — Chrome, Firefox, Safari (WebKit) — и все это из одного инструмента
- Очень быстрый — тесты выполняются параллельно (одновременно), что экономит время
- Надёжный — имеет встроенные механизмы ожидания, которые делают тесты стабильнее
- Умеет тестировать мобильные браузеры (в режиме эмуляции — то есть имитации телефона на компьютере)
- Бесплатный
- Отличная документация и активное развитие
Слабые стороны Playwright
- Сравнительно молодой — меньше готовых примеров, чем у Selenium
- Требует базового понимания программирования
Кто использует Playwright?
Playwright быстро набирает популярность и сейчас активно вытесняет Selenium в новых проектах. Многие компании, начинающие «с нуля», выбирают именно его.
Сравнительная таблица
Вот удобная таблица, которая поможет запомнить различия:
| Характеристика | Selenium | Cypress | Playwright |
|---|---|---|---|
| Год появления | 2004 | 2014 | 2020 |
| Кто создал | Сообщество | Cypress.io | Microsoft |
| Языки программирования | Python, Java, C#, JS и др. | Только JavaScript | Python, Java, C#, JS |
| Браузеры | Все основные | Chrome, Firefox (Safari — ограниченно) | Chrome, Firefox, Safari |
| Скорость | Средняя | Высокая | Высокая |
| Сложность старта | Средняя | Простая | Средняя |
| Стабильность тестов | Средняя | Высокая | Высокая |
| Мобильное тестирование | Через доп. инструменты | Ограниченно | Эмуляция |
| Цена | Бесплатно | Бесплатно (есть платные функции) | Бесплатно |
Что выбрать новичку?
Это частый вопрос, и честный ответ: зависит от ситуации. Но есть общая рекомендация:
- Если вы хотите быстро попробовать автоматизацию и увидеть результат — начните с Cypress. У него самый низкий порог входа.
- Если вы планируете работать с Python (один из самых дружелюбных языков для новичков) — смотрите в сторону Playwright или Selenium.
- Если вас интересует карьера в крупной компании — хорошо знать Selenium, потому что он до сих пор везде.
💡 Совет для начинающих: Не пытайтесь изучить все три одновременно. Выберите один, разберитесь с ним хорошо — и потом при необходимости перейдёте на другой. Концепции у всех трёх очень похожи.
Пример: как выглядит простой тест
Давайте посмотрим на конкретный пример. Представьте задачу:
Проверить, что на сайте
https://example.comесть заголовок «Example Domain».
Это простая проверка: открыть сайт и убедиться, что на странице есть нужный текст.
Как это выглядит на Playwright (Python)
# Это тест на языке Python с использованием Playwright
from playwright.sync_api import sync_playwright
# Запускаем Playwright
with sync_playwright() as p:
# Открываем браузер Chrome
browser = p.chromium.launch()
# Открываем новую страницу (вкладку)
page = browser.new_page()
# Переходим на сайт
page.goto("https://example.com")
# Находим заголовок на странице и читаем его текст
heading = page.locator("h1").text_content()
# Проверяем: текст заголовка должен быть "Example Domain"
assert heading == "Example Domain", f"Ожидали 'Example Domain', но получили: {heading}"
# Закрываем браузер
browser.close()
print("✅ Тест прошёл успешно!")
Разберём по строкам — что здесь происходит:
| Строка кода | Что это означает простым языком |
|---|---|
from playwright... |
«Подключаем инструмент Playwright к нашей программе» |
p.chromium.launch() |
«Открываем браузер Chrome» |
browser.new_page() |
«Открываем новую вкладку» |
page.goto(...) |
«Переходим по адресу сайта» |
page.locator("h1") |
«Находим на странице заголовок первого уровня» |
.text_content() |
«Читаем текст этого заголовка» |
assert heading == ... |
«Проверяем: текст совпадает с ожидаемым?» |
Если заголовок не совпадёт — программа сообщит об ошибке. Это и есть автоматическая проверка!
Как та же задача выглядит на Cypress (JavaScript)
// Это тест на JavaScript с использованием Cypress
describe('Проверка главной страницы example.com', () => {
it('должна содержать заголовок Example Domain', () => {
// Открываем сайт
cy.visit('https://example.com')
// Находим заголовок h1 и проверяем его текст
cy.get('h1').should('have.text', 'Example Domain')
})
})
Обратите внимание: код Cypress короче и читается почти как обычный текст. cy.get('h1').should('have.text', 'Example Domain') можно перевести как «возьми элемент h1 — он должен иметь текст "Example Domain"».
Что такое h1?
📚 Маленькое объяснение: Сайты состоят из HTML-кода — специального языка разметки. В нём
h1означает «заголовок первого (самого важного) уровня». Когда вы видите большой заголовок на сайте — скорее всего, это и естьh1. Инструменты автоматизации умеют находить элементы страницы по таким меткам.
Практика
Эти задания не требуют установки программ или написания кода. Их цель — закрепить понимание концепций.
Задание 1: Изучение официальных сайтов
Зайдите на официальные сайты всех трёх инструментов и потратьте по 5–10 минут на каждом:
- Selenium: https://www.selenium.dev
- Cypress: https://www.cypress.io
- Playwright: https://playwright.dev
Ответьте для себя на вопросы:
- Как выглядит главная страница каждого инструмента? Что на ней написано?
- Есть ли раздел «Документация» или «Docs»? Как называется первая статья?
- Какой инструмент кажется вам визуально наиболее понятным и приятным?
Это упражнение развивает навык ориентирования в технической документации — очень важный для QA-инженера.
Задание 2: Сравнительный анализ вакансий
Откройте любой сайт с вакансиями (например, hh.ru или LinkedIn) и найдите 5 вакансий со словом «QA» или «тестировщик».
Запишите:
- Какие инструменты автоматизации упоминаются чаще всего?
- Встречается ли Selenium, Cypress или Playwright?
- Какой инструмент кажется наиболее востребованным на рынке?
Это задание покажет вам реальную картину рынка труда.
Задание 3: Чтение кода без запуска
Вернитесь к примерам кода выше (Playwright на Python и Cypress на JavaScript). Попробуйте прочитать их вслух — буквально, как инструкцию:
«Открыть браузер Chrome. Открыть новую вкладку. Перейти на сайт example.com. Найти заголовок первого уровня. Прочитать его текст. Проверить, что текст равен "Example Domain"...»
Вопросы для размышления:
- Какой из двух примеров (Python или JavaScript) кажется вам более понятным?
- Что произойдёт, если на сайте заголовок изменится с «Example Domain» на что-то другое? Тест пройдёт или упадёт?
- Как бы вы изменили тест, чтобы проверить не заголовок, а адрес сайта в строке браузера?
Задание 4 (для любопытных): Cypress без установки
На сайте Cypress есть интерактивное демо. Зайдите на https://www.cypress.io и поищите раздел с демонстрацией или короткими видео.
Посмотрите, как Cypress выполняет тест в интерфейсе браузера. Обратите внимание:
- Видно ли, какие шаги выполняются слева?
- Видно ли состояние браузера справа?
- Что происходит, когда тест находит ошибку?
Этот инструмент называется Test Runner (тест-ранер) — программа, которая запускает тесты и показывает их ход.
Итоги урока
- 🔧 Selenium, Cypress и Playwright — три самых популярных инструмента для автоматизации тестирования веб-сайтов.
- 🕰️ Selenium — старейший и наиболее распространённый, поддерживает много языков и браузеров, но сложнее в настройке.
- ⚡ Cypress — простой в старте, работает внутри браузера, отлично подходит для JavaScript-проектов, имеет удобный визуальный интерфейс.
- 🚀 Playwright — самый современный, от Microsoft, поддерживает все браузеры и несколько языков, быстрый и стабильный.
- 📝 Все три инструмента бесплатны в базовой версии.
- 🎯 Новичкам рекомендуется выбрать один инструмент и изучить его хорошо, а не пытаться охватить все сразу.
- 💡 Концепции у всех трёх похожи: открыть браузер → найти элемент на странице → выполнить действие → проверить результат.
- 🗂️ Умение читать документацию и вакансии — важный навык QA-инженера.