SCREENPLAY - это архитектурный шаблон для автоматизированного тестирования, основанный на принципах объектно-ориентированного программирования и поведенческого паттерна Actor. Он фокусируется на том, что делают акторы (персонажи) в системе, а не на том, как они это делают.
Основные концепции:
- Actors (Aкторы): Представляют пользователей или системы, взаимодействующие с приложением. Обладают Способностями (Abilities) и могут выполнять Действия (Actions).
- Abilities (Способности): Определяют, как актор может взаимодействовать с системой (например, "BrowseTheWeb" для взаимодействия с браузером).
- Actions (Действия): Описывают задачи, которые актор выполняет (например, "Login", "AddProductToCart"). Действия могут быть как высокоуровневыми (задачи), так и низкоуровневыми (взаимодействия с UI).
- Questions (Вопросы): Позволяют актору запросить информацию о состоянии системы.
Преимущества SCREENPLAY:
- Четкое разделение ролей: Отделяет "кто" (Actor) делает "что" (Action) от "как" (Ability, Interaction).
- Высокая читаемость: Тесты написаны ближе к естественному языку, что облегчает понимание.
- Повторное использование: Элементы (Abilities, Actions, Questions) легко переиспользуются в различных тестах.
- Масштабируемость: Хорошо подходит для больших и сложных проектов.
- Поддерживаемость: Изменения в UI или логике приложения часто требуют правок только в соответствующих низкоуровневых элементах.
Пример структуры (в контексте Serenity BDD, популярной реализации SCREENPLAY):
- Tasks: Высокоуровневые действия (например, "Log in").
- Interactions: Низкоуровневые действия, взаимодействующие непосредственно с UI (например, "TypeInto", "Click").
- Questions: Запросы информации.
- Pages / UI Elements: Определения локаторов для UI элементов.
- Abilities: Способности акторов.
SCREENPLAY улучшает структуру и сопровождаемость автоматизированных тестов, делая их более предметно-ориентированными и легко читаемыми.