🤖 Академия QA-автоматизации
← Основы QA-автоматизации: курс для начинающих
Этап 5. Первые шаги в автоматизации: идеи и принципы

Популярные инструменты автоматизации: обзор 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 минут на каждом:

Ответьте для себя на вопросы:

  1. Как выглядит главная страница каждого инструмента? Что на ней написано?
  2. Есть ли раздел «Документация» или «Docs»? Как называется первая статья?
  3. Какой инструмент кажется вам визуально наиболее понятным и приятным?

Это упражнение развивает навык ориентирования в технической документации — очень важный для QA-инженера.


Задание 2: Сравнительный анализ вакансий

Откройте любой сайт с вакансиями (например, hh.ru или LinkedIn) и найдите 5 вакансий со словом «QA» или «тестировщик».

Запишите:

  • Какие инструменты автоматизации упоминаются чаще всего?
  • Встречается ли Selenium, Cypress или Playwright?
  • Какой инструмент кажется наиболее востребованным на рынке?

Это задание покажет вам реальную картину рынка труда.


Задание 3: Чтение кода без запуска

Вернитесь к примерам кода выше (Playwright на Python и Cypress на JavaScript). Попробуйте прочитать их вслух — буквально, как инструкцию:

«Открыть браузер Chrome. Открыть новую вкладку. Перейти на сайт example.com. Найти заголовок первого уровня. Прочитать его текст. Проверить, что текст равен "Example Domain"...»

Вопросы для размышления:

  1. Какой из двух примеров (Python или JavaScript) кажется вам более понятным?
  2. Что произойдёт, если на сайте заголовок изменится с «Example Domain» на что-то другое? Тест пройдёт или упадёт?
  3. Как бы вы изменили тест, чтобы проверить не заголовок, а адрес сайта в строке браузера?

Задание 4 (для любопытных): Cypress без установки

На сайте Cypress есть интерактивное демо. Зайдите на https://www.cypress.io и поищите раздел с демонстрацией или короткими видео.

Посмотрите, как Cypress выполняет тест в интерфейсе браузера. Обратите внимание:

  • Видно ли, какие шаги выполняются слева?
  • Видно ли состояние браузера справа?
  • Что происходит, когда тест находит ошибку?

Этот инструмент называется Test Runner (тест-ранер) — программа, которая запускает тесты и показывает их ход.


Итоги урока

  • 🔧 Selenium, Cypress и Playwright — три самых популярных инструмента для автоматизации тестирования веб-сайтов.
  • 🕰️ Selenium — старейший и наиболее распространённый, поддерживает много языков и браузеров, но сложнее в настройке.
  • Cypress — простой в старте, работает внутри браузера, отлично подходит для JavaScript-проектов, имеет удобный визуальный интерфейс.
  • 🚀 Playwright — самый современный, от Microsoft, поддерживает все браузеры и несколько языков, быстрый и стабильный.
  • 📝 Все три инструмента бесплатны в базовой версии.
  • 🎯 Новичкам рекомендуется выбрать один инструмент и изучить его хорошо, а не пытаться охватить все сразу.
  • 💡 Концепции у всех трёх похожи: открыть браузер → найти элемент на странице → выполнить действие → проверить результат.
  • 🗂️ Умение читать документацию и вакансии — важный навык QA-инженера.

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.