Ответ вслух Senior Page Object и архитектура обновлено

Архитектура фреймворка автотестов

Вопрос

Вы техлид автоматизации. Расскажите, как устроите фреймворк, чтобы им пользовались 5 команд и 20 человек.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Ядро фреймворка делаю отдельным пакетом: обёртки над драйвером, базовые фикстуры, API-клиенты, билдеры данных, интеграция с Allure. Тесты команд живут рядом с их сервисами или в своих папках, Page Object каждая команда пишет для своих экранов, общие компоненты лежат в ядре.

Что должно прозвучать в ответе

  • Слои: тесты, страницы и компоненты, API-клиенты, данные, фикстуры, конфиг

  • Единые соглашения: локаторы, именование, метки, структура папок

  • Общее ядро как пакет или монорепо, тесты команд рядом со своим кодом

  • Изоляция данных и параллельность by design

  • Качество кода тестов: ревью, линтеры, запрет sleep, шаблоны

  • Отчётность и метрики: флаки, время, владельцы тестов

Что могут спросить следом

  • Как не дать ядру превратиться в свалку?
  • Тесты рядом с кодом продукта или в отдельном репозитории?
  • Как обучать новых людей?

Разбор

Образцовый ответ: «Ядро фреймворка делаю отдельным пакетом: обёртки над драйвером, базовые фикстуры, API-клиенты, билдеры данных, интеграция с Allure. Тесты команд живут рядом с их сервисами или в своих папках, Page Object каждая команда пишет для своих экранов, общие компоненты лежат в ядре. Соглашения фиксирую в README и линтере: data-testid, метки smoke и regress, запрет sleep, проверки в тестах. Данные каждый тест создаёт сам через API, поэтому всё параллелится. Для владельцев есть метка команды, и отчёт о флаки уходит владельцу. В ядро изменения идут через ревью моей группы, чтобы оно не стало свалкой»).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме