Зачем нужен фреймворк для автоматизации
Что проверяют
Понимаете ли вы, что тесты живут годами, и знаете ли, из чего состоит их обвязка. Ответ «чтобы писать тесты» слишком мелкий.
Как отвечать
Фреймворк это всё, что вокруг самих проверок: то, благодаря чему сотня тестов остаётся поддерживаемой, а не превращается в свалку.
Что он даёт:
- единая структура: где лежат тесты, где данные, где описание экранов. Новый человек находит нужное без экскурсии;
- подготовка и очистка: фикстуры создают состояние и убирают за собой, поэтому тесты не зависят друг от друга и от порядка запуска;
- абстракции над интерфейсом и API: страницы и клиенты, чтобы правка вёрстки чинилась в одном месте, а не в сорока тестах;
- данные: генерация, изоляция между прогонами, отдельные учётные записи, чтобы параллельный запуск не ломал соседа;
- отчёты и разбор падений: скриншоты, логи, запись запросов, история прогонов. Без этого упавший тест никто не чинит, потому что непонятно, почему он упал;
- запуск: параллельность, группы (дымовые, регрессия), теги, интеграция с конвейером и с системой управления тестами;
- стабильность: явные ожидания, повторы для действительно нестабильных мест, карантин для мигающих тестов.
Полезно сказать и про выбор: чаще берут готовое (pytest, JUnit, Playwright, Selenide) и достраивают под проект, а полностью самописный фреймворк оправдан редко, потому что его тоже нужно поддерживать.
Ключевая мысль в конце: цель фреймворка не в написании тестов, а в том, чтобы результату прогона доверяли. Красный тест должен означать дефект, иначе автоматизацию перестают читать.
Где спотыкаются
Строят сложную обвязку раньше, чем появились первые полезные тесты.
Не вкладываются в отчёты, и разбор падений становится дороже ручной проверки.
Терпят мигающие тесты и перезапускают прогон до зелёного, обесценивая всю затею.