Headless Recorder ушедшая легенда автоматизации тестирования

16 Dec, 2022

Это архивный репозиторий и может быть устаревшим.

Представьте: вы в сотый раз проверяете один и тот же сценарий на сайте вручную. Клики, заполнение форм, ожидание загрузки... Знакомо? Именно эту рутину когда-то брал на себя Headless Recorder — расширение для Chrome, которое записывало ваши действия и превращало их в готовые скрипты для Puppeteer и Playwright.

Хотя проект официально закрыт с декабря 2022 года, его история и функционал заслуживают внимания как пример элегантного решения распространённой проблемы автоматизации тестирования.

Что умел этот инструмент?

Headless Recorder работал как своеобразный "секретарь" для QA-инженеров и фронтенд-разработчиков:

  1. Записывал все основные взаимодействия с сайтом: клики, ввод текста, навигацию
  2. Генерировал чистый код на выбор:
    • Playwright (актуальный современный инструмент)
    • Puppeteer (популярный, но постепенно устаревающий)
  3. Добавлял полезные конструкции типа waitForNavigation автоматически
  4. Позволял делать скриншоты элементов и всей страницы прямо во время записи

Демонстрация работы Headless Recorder

Почему разработчики его любили?

В эпоху расцвета проекта (2018-2022) Headless Recorder предлагал несколько уникальных преимуществ:

  • Экономия времени — вместо часов написания кода тестов получали их за минуты записи
  • Низкий порог входа — не нужно глубоко знать API Puppeteer/Playwright для создания первых тестов
  • Гибкость — можно было редактировать сгенерированный код, добавляя сложную логику
  • Интеграция с Checkly — сервисом мониторинга от создателей расширения

Технические особенности

Под капотом проект использовал:

  • Vue.js для интерфейса расширения
  • Собственные алгоритмы преобразования событий DOM в код
  • Поддержку всех основных событий: от кликов до отправки форм

Вот как выглядел типичный сгенерированный код:

// Пример кода Playwright, сгенерированного Headless Recorder
await page.goto('https://example.com');
await page.click('button.submit');
await page.waitForNavigation();
await page.type('#email', 'test@example.com');

Почему проект закрыли и что использовать вместо него?

Создатели объяснили в issue #232, что сосредоточились на других продуктах. Часть функционала перешла в коммерческие решения Checkly.

Альтернативы на 2024 год:

  1. Playwright Test Generator — встроен в сам Playwright
  2. BrowserStack Automate — коммерческое решение с функцией записи
  3. Selenium IDE — классика для записи тестов

Вывод: уроки от закрытого проекта

Headless Recorder показал, как можно:

  • Упростить рутинные задачи тестирования
  • Снизить порог входа в автоматизацию
  • Элегантно преобразовывать действия в код

Хотя сам проект больше не развивается, его идеи живут в современных инструментах. Если вы только начинаете автоматизировать тестирование — посмотрите на встроенные возможности Playwright, они во многом унаследовали философию удобства от Headless Recorder.

Логотип Checkly