Мой ТГ канал: https://t.me/maestro_autotests Тема: Создание тестового сценария в Maestro Studio
Хочу зафиксировать процесс создания простого сценария с операторами ввода, действия и проверки.
Стек для первого теста: * Среда разработки: Maestro Studio (удобная встроенная среда для создания и отладки тестов от создателей фреймворка). * Цель теста: Протестировать создание новой аптечки в приложении. * Устройство: iOS симулятор (запуск на реальных устройствах, как указано в доке, пока в разработке). * Тестируемое приложение: “Аптечка”
План vs. Реальность План был прост: Запустить приложение → Тапнуть “Добавить” → Ввести название → Проверить создание.
Реальность оказалась интереснее. Я столкнулся с тем, что на iOS-симуляторе фреймворк не всегда корректно определял момент полной загрузки приложения. Встроенного “ожидания из коробки” не хватило — тест пытался тапнуть по элементам, которые ещё не отрисовались.
Решение пришлось усложнить: Добавил JS-скрипт с паузой на 5 секунд после запуска. Так что мой “простой” тест обзавёлся первым скриптом.
—
Код итогового теста (test_1.yaml) # Создание аптечки appId: ru.zyfunphoto.MedicinesV2 — - launchApp # Команда запуска приложения
# Добавляем паузу на 5 секунд - runScript: file: “scripts/pause.js” # путь к файлу js c паузой 5 сек
- tapOn: id: plus # Тапаем по кнопке “Добавить” по её ID - tapOn: “Введите название аптечки” # Тапаем на поле ввода по тексту
- inputText: “Прием витаминов” # Вводим название аптечки
- tapOn: Добавить # Подтверждаем создание
- assertVisible: Прием витаминов # Проверяем, что аптечка создалась
Скрипт паузы (scripts/pause.js): const pauseDuration = 5000; // 5000 = 5сек const start = Date.now(); while (Date.now() - start < pauseDuration) { }
Примечание: Вместо цикла while можно использовать setTimeout, но этот вариант тоже работает.
—
Что я вынес из этого опыта:
1. Maestro Studio — это мощно. Генерация команд по клику ускоряет написание тестов в разы и помогает изучить синтаксис. 2. «Из коробки» работает хорошо, но не всегда идеально. На разных платформах и приложениях могут потребоваться дополнительные ожидания. 3. Гибкость за счёт JS — это ключевая фишка. Проблема, которая могла бы остановить написание теста, решается буквально тремя строчками JavaScript. 4. Документация — ваш лучший друг. Для всех операторов (tapOn, inputText, assertVisible и десятков других) есть наглядные примеры.
Официальная документация Maestro с примерами: https://docs.maestro.dev
Итог:
Тест успешно прошёл! В следующий раз попробую убрать костыль с фиксированной паузой и использовать более правильные ожидания, например, assertVisible для сплеш-скрина.
#maestro #maestrostudio #первыйтест #ios #автотесты #mobiletesting #qa