674просмотров
23 октября 2025 г.
📷 ФотоScore: 741
Преимущества Playwright Как и обещал (хоть и с опозданием и после лёгких пинков от читателя), делюсь преимуществами, которые мы получили после перехода с Selenium на Playwright. Итак, напомню контекст: у нас автотесты монолита запускаются в изоляции (почти). Сначала собираются все компоненты, затем создаются и загружаются их Docker-образы. Затем в тестах запускается docker-compose со всеми сервисами монолита, скачивается и запускается БД — и только после этого стартуют автотесты. Тесты разделены на два уровня: API и UI. В каждом уровне есть по 1–3 тест-сьюта, которые запускаются параллельно. Для каждого сьюта поднимается своё окружение, БД и запускаются тесты.
API-тесты в этом улучшении мы не трогали, поэтому оставим их за скобками. Ещё важная ремарка: перед анализом я очистил данные от аномалий (несколько прогонов длились по 800+ и 1000+ минут), а также взял только успешные запуски на main — нашей основной интеграционной ветке, куда попадает уже проверенный и зарелизенный код. Что мы получили:
1. Сокращение времени прохождения пайплайна. Раньше среднее время составляло 22.88 минут, теперь — 20.46. На графике 1 (который, конечно, нарисовал Perplexity) видно ситуацию "до" и "после". Левый и правый "усы" показывают минимальное и максимальное время прохождений, цветная область — 25–75 персентили, а чёрточка внутри — медиану. После внедрения Playwright медианное значение снизилось примерно на 3 минуты. То, что в Selenium было ниже 25-го перцентиля, теперь стало 75-м в Playwright. Экономия выглядит умеренной, но если учесть что мы запускаем пайплайн около 30 000 раз в год (в 2024 году было так) — это примерно 60 000 минут, или 1000 часов экономии времени разработчиков ежегодно. Конечно, обратная связь о коде через 20 минут вместо 22 — совсем не радикальное сокращение, но в масштабе года результат приемлемый. 2. Снижение затрат на GitHub Actions. Раньше у нас было два сьюта UI-тестов — каждый проходил около 10 минут (примерно 4,5 минуты на поднятие окружения и 6 минут на выполнение тестов). Итого — 20 оплачиваемых минут. После перехода на Playwright остался один сьют с тем же количеством тестов, выполняющийся за 10-11 минут. На втором графике — видно насколько сократилось потребление времени для выполнения этих тестов (и, соответственно, денег). Максимальное значение в Playwright теперь ниже медианы Selenium. Если взять стоимость минуты в 0.008 $, то: 30 000 запусков × 9 минут × 0.008 $ = 2160 $ экономии в год. Неплохой результат за счёт одной только замены фреймворка. 3. Единый технологический стек. Приведение всех тестов к единому инструменту и экосистеме — бесценно, особенно для поддержки и найма новых сотрудников. И всё это — при 60 UI‑тестах. А представьте, сколько бы мы сэкономили, если бы тестов было 600 😅