AWS Device Farm: налаштування тестування на реальних пристроях

Регресійне тестування мобільного застосунку на десятку пристроїв — головний біль без хмарної ферми. Різні виробники, версії ОС, роздільна здатність екранів — кожен тест доводиться запускати локально або на реальних пристроях в офісі. AWS Device Farm для тестування мобільних застосунків на реальних п

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
AWS Device Farm: налаштування тестування на реальних пристроях
Середній
~2-3 дні

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

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

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

  • 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

Регресійне тестування мобільного застосунку на десятку пристроїв — головний біль без хмарної ферми. Різні виробники, версії ОС, роздільна здатність екранів — кожен тест доводиться запускати локально або на реальних пристроях в офісі. AWS Device Farm для тестування мобільних застосунків на реальних пристроях вирішує цю проблему, використовуючи екосистему AWS: ті самі IAM-ролі, CLI, політики доступу. Наш досвід показує, що 80% проблем при першому запуску — неправильне пакування тестів або конфігурація пулу пристроїв. Уникнути цих помилок допоможе ця стаття. Ми налаштували Device Farm для 30+ проєктів, і середнє скорочення часу регресійного тестування склало 70% — це дозволило клієнтам відмовитися від купівлі фізичних пристроїв і зосередитися на якості коду. Автоматизація на Device Farm скорочує час регресії в 3 рази порівняно з ручним тестуванням.

Як налаштувати тестування на AWS Device Farm?

Чому AWS Device Farm, а не BrowserStack чи Sauce Labs?

Якщо ваш проєкт уже на AWS (CodePipeline, CodeBuild, S3), Device Farm вбудовується органічно: не потрібен окремий логін, білінг через AWS, IAM-політики централізовані. Для компаній з вимогами до data residency це плюс — пристрої знаходяться в тих самих регіонах, що й решта інфраструктури. Він підтримує APK/IPA та Instrumentation-тести (Espresso) без додаткової прошарки. Порівняно з BrowserStack, хмарна ферма дає більше контролю над пулом пристроїв, хоча інтерфейс менш інтуїтивний.

Що входить у налаштування?

Компонент Опис
Проєкт та IAM-ролі Створення проєкту, мінімальні права
Пул пристроїв Фільтрація за платформою, версією ОС, виробником. Доступно понад 2000 моделей
Пакування тестів Приклади для Appium, Espresso, XCUITest
Інтеграція CI/CD CodePipeline, GitHub Actions, GitLab CI
Звіти та сповіщення Slack, Telegram, S3
Документація Інструкції для вашої команди, скрипти

Типи тестів: порівняння

Тип Швидкість Підтримка Складність пакування
Appium Середня Android, iOS Середня (залежності в ZIP)
Espresso Висока Android (4.3+) Низька (звичайний APK)
XCUITest Висока iOS (9.0+) Середня (xcodebuild)

Як упакувати Appium-тести для Device Farm?

Пакування Appium-тестів — часта причина збоїв. Device Farm вимагає ZIP з package.json, node_modules і тестами. Структура для WebdriverIO:

tests.zip/ ├── package.json ├── package-lock.json ├── node_modules/ └── test/ └── specs/ └── login.test.js 

Конфіг WebdriverIO:

// wdio.conf.devicefarm.js exports.config = { runner: 'local', specs: ['./test/specs/**/*.js'], capabilities: [{ platformName: process.env.DEVICEFARM_DEVICE_PLATFORM_NAME, 'appium:deviceName': process.env.DEVICEFARM_DEVICE_NAME, 'appium:platformVersion': process.env.DEVICEFARM_DEVICE_OS_VERSION, 'appium:app': process.env.DEVICEFARM_APP_PATH, 'appium:automationName': process.env.DEVICEFARM_DEVICE_PLATFORM_NAME === 'iOS' ? 'XCUITest' : 'UiAutomator2', }], hostname: 'localhost', port: 4723, }; 

Сервіс сам запускає Appium-сервер, змінні передаються автоматично.

Нативні тести: Espresso та XCUITest

Espresso працює швидше Appium, оскільки виконується в одному процесі з застосунком. Завантаження APK та тест-APK через AWS CLI:

PROJECT_ARN=$(aws devicefarm create-project --name "MyApp" --query 'project.arn' --output text) APP_UPLOAD=$(aws devicefarm create-upload --project-arn $PROJECT_ARN --name "app-debug.apk" --type ANDROID_APP --query 'upload.{arn:arn,url:url}' --output json) APP_URL=$(echo $APP_UPLOAD | jq -r '.url') APP_ARN=$(echo $APP_UPLOAD | jq -r '.arn') curl -T app/build/outputs/apk/debug/app-debug.apk "$APP_URL" TEST_UPLOAD=$(aws devicefarm create-upload --project-arn $PROJECT_ARN --name "app-debug-androidTest.apk" --type INSTRUMENTATION_TEST_PACKAGE --query 'upload.{arn:arn,url:url}' --output json) TEST_ARN=$(echo $TEST_UPLOAD | jq -r '.arn') curl -T app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk "$(echo $TEST_UPLOAD | jq -r '.url')" aws devicefarm schedule-run --project-arn $PROJECT_ARN --app-arn $APP_ARN --device-pool-arn $POOL_ARN --name "Espresso Run" --test type=INSTRUMENTATION,testPackageArn=$TEST_ARN,filter="com.example.LoginTest" 

Для iOS використовуйте XCUITest, пакування через xcodebuild.

Покрокова інструкція з налаштування Device Farm

  1. Створіть проєкт Device Farm і налаштуйте IAM-ролі з мінімальними правами (devicefarm:* на проєкт).
  2. Сформуйте пул пристроїв: виберіть платформу, версії ОС, виробників і відфільтруйте за AVAILABILITY: HIGHLY_AVAILABLE, щоб уникнути черг (середній час очікування – менше 5 хвилин).
  3. Завантажте застосунок (APK/IPA) та тестовий пакет через AWS CLI або консоль. Переконайтеся, що тести упаковані правильно (ZIP з залежностями).
  4. Запустіть тестовий прогін, вибравши пул і тип тесту (Appium, Espresso, XCUITest).
  5. Налаштуйте інтеграцію з CI/CD (CodePipeline, GitHub Actions) та сповіщення (Slack, Telegram).

Інтеграція з CI/CD

Додайте етап у buildspec.yml для CodePipeline:

phases: build: commands: - ./gradlew assembleDebug assembleAndroidTest - APP_ARN=$(aws devicefarm create-upload --project-arn $DEVICE_FARM_PROJECT_ARN --name "app.apk" --type ANDROID_APP --query 'upload.arn' --output text) # ... завантаження та запуск - aws devicefarm get-run --arn $RUN_ARN --query 'run.result' 

IAM-роль CodeBuild повинна мати дозволи devicefarm:* на проєкт.

Аналіз результатів

Артефакти доступні через API:

aws devicefarm list-artifacts --arn $JOB_ARN --type FILE --query 'artifacts[*].{name:name,url:url}' --output table 

Типові артефакти: Logcat, Screenshots, Video, Test spec output. Наші інженери налаштовують автоматичне відправлення звіту в Slack або Telegram.

Кейс: як налаштування Device Farm заощадило 40 годин на місяць

Один із клієнтів — фінтех-стартап з Android-застосунком, що тестується на 20 пристроях локально. Кожен прогін регресії займав 8 годин ручної праці. Після налаштування Device Farm з інтеграцією в GitLab CI час скоротився до 1,5 годин повністю автоматично. Ми налаштували пул з 10 паралельних пристроїв, підключили сповіщення в Slack та експорт звітів у S3. Витрати на хмарну ферму виявилися нижчими за вартість утримання власного парку пристроїв. За нашими оцінками, перехід на Device Farm зменшує витрати на тестування на 60% – з $2000 до $800 на місяць для середнього проєкту.

Наші інженери мають AWS-сертифікації та 10+ років досвіду в мобільній розробці. Ми гарантуємо, що перший прогін буде успішним протягом 3 днів після початку робіт.

Налаштування під ключ включає: створення пулу, пакування тестів, інтеграцію CI/CD та документацію. Ми гарантуємо успішний перший прогін через 3 дні. Замовте безкоштовну оцінку вашого проєкту просто зараз – пишіть нам, і ми оцінимо ваш проєкт за 1 день. У вартість входить повна документація та підтримка після налаштування.

Докладніше про Device Farm читайте в офіційній документації AWS.