Рекомендация
Как устроить репозиторий объектов под автотесты
Как устроить репозиторий объектов под автотесты
Рекомендация, как вести репозиторий объектов, чтобы шаги автотестов в ComplexQA переиспользовали пути и локаторы без копирования.
Зачем
Один контрол в десяти автотестах с разными строками локатора ломается в десяти местах сразу. Страница и элемент в каталоге дают одну точку правки и стабильный Target для шагов.
Как устроить работу
- Заведите страницу на устойчивый путь экрана (вид
PAGE). Экран на том же хосте, что стартовый домен запуска, храните относительным путём. Экран на поддомене команды (после клика вCOMMON) храните полным URLhttps://{slug}.хост/…. Подтверждённый корень покрывает свои поддомены. Относительныйgotoвсегда склеивается со стартовым доменом запуска, не с текущей вкладкой. - Группируйте страницы и элементы в папках по экранам или зонам продукта. Перетащите строку на папку в дереве, в том числе на пустую. В корне дерева таблица показывает все записи проекта; откройте папку, чтобы сузить список.
- Заведите элементы на контролы этой страницы (вид
ELEMENT) с однозначным локатором: предпочтительноTESTID,ROLE,LABEL. - Именуйте записи так, чтобы автор шага находил их без угадывания (экран + роль контрола).
- В шагах выбирайте элемент или страницу из каталога вместо локатора на шаге, когда Target повторяется. Порядок: Привязка Target из репозитория объектов.
- Черновик шагов со страницы каталога: Генерация автотестов по странице.
- После смены разметки продукта правьте локатор в элементе каталога, затем снова запустите затронутые
CASE.
Чего избегать
| Плохо | Хорошо |
|---|---|
| Один «универсальный» элемент на весь продукт | Элемент на конкретный контрол страницы |
CSS с *= в каталоге | Точный TESTID или роль с именем |
| Путь страницы с одноразовым query | Стабильный путь экрана |
| Относительный путь на экран поддомена при старте с корня | Полный URL страницы каталога на {slug}.хост |
| Локатор только в шаге при пяти копиях | Элемент в репозитории + привязка Target |
Смешение TEST_ACCOUNT с Target-страницей | Элемент или локатор на шаге для TEST_ACCOUNT |
Репозиторий сам тесты не выполняет. Выполнение - в запуске автотестов.
Страница не помогла?