5 вещей в Maestro, которые упрощают поддержку UI-автотестов.
Когда только начинаешь работать с Maestro кажется: “Ну YAML, ну UI тесты, ничего необычного”. Но чем больше становится тестов, тем сильнее начинаешь замечать вещи, которые реально упрощают поддержку автотестов. 1. Nested flows Очень удобная штука. Например: авторизацию, onboarding или работу с корзиной можно вынести в отдельный flow и потом использовать в разных тестах. - runFlow: login.yaml В итоге: меньше копипасты чище тесты проще поддержка Особенно хорошо ощущается после первых изменений UI )) 2. waitUntil Очень помогает бороться с flaky тестами. Вместо: “надеемся что элемент успел появиться” можно нормально дождаться нужного состояния UI. Например: - waitUntil: visible: text: “Оплатить” timeout: 10000 После перехода на waitUntil: стало меньше random падений стабильнее CI меньше зависимости от скорости устройства 3. JavaScript integration Вот тут приходит понимание: YAML — вообще не ограничение. Через JS можно: генерировать тестовые данные работать с переменными делать условия строить динамические сценарии Например: если товара нет в наличии → запускать другой сценарий. Именно после этого Maestro начинает ощущаться уже не как “простой YAML framework”. 4. Conditional logic Очень полезная штука для нестандартных сценариев. Например: если появился popup → закрываем. Если нет → продолжаем тест. Это позволяет: уменьшать количество дублей делать тесты гибче проще обрабатывать разные состояния UI Особенно полезно при feature flags и нестабильных данных. 5. Labels Сначала вообще не обращал внимания на labels. Но когда тестов и логов становится много - начинаешь понимать насколько это удобная штука. Очень помогает: разделять блоки сценариев быстрее искать место падения читать логи без боли Особенно полезно на длинных flow. И чем глубже начинаешь работать с Maestro, тем сильнее замечаешь: самые полезные вещи в нем лежат не на поверхности 👀 #Maestro #QA #AQA #MobileQA #Автотесты