Есть web- приложение c большым количеством логики, которое происходит в пользовательском интерфейсе. Например при нажатии кнопки, не дергается никакое API бэкэнда, а срабатывает эвент, результат которого кладется в redux store приложения. Соответственно возникает проблема с подготовкой тестовых данных для прохождения автотеста.
Мой стек для автотестирования Cypress.io + javascript
Есть сценарий - “Загрузка медиаконтента в тестовую спецификацию”
Есть логика работы тестовой спецификации, условно три раздела:
- Заполнение инфы о тестовой спецификации
- Заполение параметров тестовой спецификации
- Загрузка медиаконтента в тестовую спецификацию
В тестовой спецификакции, по требованию заказчика есть валидация. Что невозможно перейти на шаг - 2 если не выполнен шаг - 1 и т.д.
Сейчас мой автотест выглядит следующим образом:
Приходится заполнять все поля на каждом этапе тестовой спецификации, чтобы добраться до последнего раздела и уже в нем загрузить медиаконтент. Сразу навигироваться на раздел 3 я не могу. Потому что в таком случае сразу срабатывает валидация и все перестанет работать.
Очевидно что такой автотест написан плохо, и его нужно делить. Потому что он проходиться долго и весьма хрупкий.
Соответственно возникает вопрос:
А как можно управлять состоянием страницы, и сделать скажем так, чтобы в автотесте я сразу навигировался на раздел тестовой спецификации, чтобы загрузить в него медиаконтент.
Может есть вообще какие - то инструменты для управления тестовыми данными через UI, где есть какая-то возможность скажем сделать часть полей web-страницы заполненными сразу при навигации в тесте, а часть нет.
В том фреймворке, rоторый я использую “https://www.cypress.io/” есть возможность работать с redux store, но только если сам cypress интегрирован в локальную сборку в качестве dependency. Но на данный момент у меня нет возможность писать автотесты на локальную сборку внутри проекта. По этому тесты пишутся уже на расскатанный проект для тестирования