Розробка E2E-тестів для мобільного додатка на Maestro

Розробка E2E-тестів для мобільного додатка (Maestro) Ми використовуємо Maestro, тому що це найшвидший спосіб покрити додаток E2E-тестами без танців з сервером. За 5 років ми автоматизували більше 50 мобільних проектів — від банківських додатків до маркетплейсів. Нещодавно для фінтех-стартапу з 30

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка E2E-тестів для мобільного додатка на Maestro
Середній
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Розробка E2E-тестів для мобільного додатка (Maestro)

Ми використовуємо Maestro, тому що це найшвидший спосіб покрити додаток E2E-тестами без танців з сервером. За 5 років ми автоматизували більше 50 мобільних проектів — від банківських додатків до маркетплейсів. Нещодавно для фінтех-стартапу з 30 екранами написали 15 YAML-флоу за 4 дні. Регрес скоротився з двох днів до чотирьох годин, що значно зменшує витрати на обслуговування тестів. Maestro — black-box інструмент, він спілкується з пристроєм через Accessibility API і не потребує модифікації коду. Це ідеально для регресу ключових користувацьких шляхів: реєстрація, каталог, оформлення замовлення. Середній проект скорочує час регресії на 70%, а вартість підтримки тестів — на 40% порівняно з Appium. Гарантуємо: кожен тест проходить рев'ю і запускається на реальних пристроях.

Як Maestro спрощує життя мобільному розробнику?

Головне — нульова конфігурація. Встановив через curl, написав YAML, запустив maestro test. Не потрібно піднімати Appium-сервер, вбудовувати агент або розбиратися з XCUITest. Maestro сам знаходить елементи за текстом, accessibilityLabel або id. Для типових додатків це покриває 80–90% сценаріїв.

Як написати тест на Maestro: покрокова інструкція

  1. Створіть YAML-файл у папці flows/.
  2. Вкажіть appId вашого додатка (bundle ID для iOS, package name для Android).
  3. Напишіть послідовність дій: launchApp, tapOn, inputText, assertVisible.
  4. Використовуйте змінні та runFlow для перевикористання (див. приклад нижче).
  5. Запустіть тест командою maestro test flows/.

YAML-сценарії: просто, але є нюанси

Мінімальний флоу авторизації:

appId: com.example.myapp --- - launchApp: clearState: true - tapOn: "Email" - inputText: "[email protected]" - tapOn: "Пароль" - inputText: "password123" - tapOn: "Увійти" - assertVisible: "Головна" 

tapOn шукає елемент за текстом, accessibilityLabel, testID або id. Якщо на екрані два елементи з однаковим текстом — Maestro натисне на перший. У таких випадках використовуємо tapOn з уточненням: index або id.

- tapOn: text: "Додати" index: 1 - tapOn: id: "add_to_cart_button" 

id на Android — resource-id, на iOS — accessibilityIdentifier. Maestro визначає платформу автоматично.

Змінні та підфлоу

Без змінних та runFlow великі тест-сьюти перетворюються на копіпасту. Створюємо перевикористовувані блоки:

# flows/login.yaml appId: com.example.myapp --- - tapOn: "Email" - inputText: ${EMAIL} - tapOn: "Пароль" - inputText: ${PASSWORD} - tapOn: "Увійти" # flows/checkout_test.yaml appId: com.example.myapp env: EMAIL: [email protected] PASSWORD: password123 --- - runFlow: flows/login.yaml - tapOn: "Каталог" - tapOn: "Купити" - assertVisible: "Оформлення замовлення" 

Змінні перевизначаються при запуску: maestro test --env [email protected].

Запуск: локально та в CI

Локальний запуск — головна перевага Maestro. Встановлення та запуск:

curl -Ls "https://get.maestro.mobile.dev" | bash maestro test flows/ maestro studio 

maestro studio — браузерний UI для інтерактивного вибору елементів.

Maestro Cloud

Для CI без власних пристроїв використовуємо Maestro Cloud. У GitHub Actions:

- name: Run Maestro tests on Maestro Cloud uses: mobile-dev-inc/action-maestro-cloud@v1 with: api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }} app-file: app/build/outputs/apk/debug/app-debug.apk flows-file: flows/ 

Для власного CI — локальний емулятор + maestro test.

Чому Maestro, а не Appium чи Detox?

Ми часто чуємо це питання. Порівняємо в таблицях:

Критерій Maestro Appium Detox
Конфігурація Немає Потрібен сервер Вбудовування агента
Мова тестів YAML Java/Python/JS JS
Хмарні пристрої Maestro Cloud AWS Device Farm Firebase
Кастомні жести Немає Так Так
Доступ до JS Немає Немає Так

Для стандартних CRUD-додатків Maestro виграє за швидкістю написання та підтримки.

Сценарій Строк (дні) Складність
5–7 флоу (реєстрація, каталог, замовлення) 3 Низька
Складні багатоекранні сценарії 5 Середня
Повний регрес (20+ флоу) 10 Висока

Обмеження, які треба знати

Maestro не вміє в кастомні жести: pinch, rotate, multi-touch. Для додатків з картами або галереєю, де потрібен зум — Appium або Detox. Немає прямого доступу до JavaScript-контексту (на відміну від Detox). Assertions обмежені видимістю (assertVisible, assertNotVisible). Перевірити точне значення атрибута або координату елемента — не можна.

Незважаючи на це, для стандартних CRUD-додатків, маркетплейсів, сервісних додатків Maestro покриває 80–90% потрібних E2E-сценаріїв з мінімальними витратами на підтримку.

Типові помилки новачків
  • Використання тексту, що змінюється (дата, час). Краще використовувати testID.
  • Забули очистити стан між тестами — використовуйте clearState: true.
  • Неправильний appId — перевірте bundle ID або package name.
  • Залежність від порядку екранів — використовуйте runFlow з авторизацією.

Що входить у роботу під ключ

  • Написання YAML-флоу для ключових користувацьких сценаріїв
  • Налаштування змінних та перевикористовуваних підфлоу
  • Інтеграція з CI (GitHub Actions / GitLab CI)
  • Налаштування запуску через Maestro Cloud або локальний емулятор
  • Документація з додавання нових тестів

Строки та вартість

3–5 днів залежно від кількості сценаріїв. 5–7 флоу для типового CRUD-додатка — 3 дні. Складні багатоекранні сценарії зі змінними та вкладеними флоу — 5 днів. Вартість розраховується індивідуально. Оцінимо ваш проект за 1 день. Ми гарантуємо якість: кожен тест проходить рев'ю і запускається на реальних пристроях.

Замовте розробку E2E-тестів — напишіть нам, ми відповімо протягом 2 годин. Отримайте консультацію з автоматизації регресу для вашого проекту.