Device Farm — це хмарний сервіс, що надає віддалений доступ до сотень реальних мобільних пристроїв для автоматичного та ручного тестування додатків. Розробники завантажують APK або IPA, обирають конфігурації пристроїв та запускають тести паралельно, не купуючи фізичні пристрої. За даними звіту Perfecto, 2025, команди, що використовують Device Farm, скорочують час регресійного тестування на 73% порівняно з локальними фермами пристроїв.
Головне
Device Farm — це інфраструктурне рішення для тестування мобільних додатків, що надає віддалений доступ до фізичних та віртуальних пристроїв через інтернет. На відміну від придбання та обслуговування власної лабораторії пристроїв, розробники орендують час на сторонніх пристроях, оплачуючи лише фактичне використання.
Ринок мобільних пристроїв налічує понад 24 000 унікальних моделей Android-смартфонів за даними OpenSignal, 2025. Фізично придбати всі популярні моделі для тестування неможливо — це потребуватиме мільйонів доларів інвестицій та постійного оновлення парку. Device Farm вирішує цю проблему, надаючи доступ до актуальних пристроїв за підпискою.
Емулятори та симулятори покривають лише 60–70% сценаріїв тестування. Реальні пристрої необхідні для перевірки сенсорів, камери, GPS, рівня заряду батареї, продуктивності на слабкому залізі та поведінки при вхідних дзвінках. Device Farm поєднує обидві підходи: емулятори для швидких smoke-тестів та фізичні пристрої для повної верифікації.
Device Farm підходить для стартапів, що випускають перший додаток, зрілих продуктових команд з регулярними релізами та enterprise-проектів з десятками додатків. Доцільність використання зростає з збільшенням кількості цільових пристроїв та частоти релізів — чим більше конфігурацій потрібно перевірити, тим вигідніша хмарна модель.
Типовий сценарій роботи з Device Farm включає п’ять етапів: завантаження білду, вибір пристроїв, налаштування тестів, запуск та аналіз результатів. Кожен етап автоматизується через API, що дозволяє вбудувати Device Farm в CI/CD конвієр без ручного втручання.
Розробник завантажує зібраний APK (Android), AAB або IPA (iOS) у хмарне сховище провайдера. Деякі сервіси, наприклад Firebase Test Lab, приймають також проекти Xcode або Android Studio безпосередньо. Розмір файлу обмежений: AWS Device Farm підтримує до 200 МБ, BrowserStack — до 500 МБ.
З каталогу пристроїв обираються цільові моделі та версії ОС. Сучасні Device Farm підтримують групування: «всі флагмани 2024–2025» або «бюджетні Android з Android 13–14». Паралельне виконання дозволяє запустити один тест одночасно на 10–50 пристроях, скорочуючи загальний час до хвилин.
Тести виконуються на реальних пристроях у дата-центрах провайдера. Розробник спостерігає за ходом виконання через веб-консоль у реальному часі: логи, скріншоти та відео проходження тесту. При падінні тесту Device Farm робить снімок екрана та збирає crash-лог для діагностики.
// Пример конфигурации Device Farm в Jenkinsfile
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './gradlew assembleDebug'
}
}
stage('Device Farm Tests') {
steps {
sh '''aws device-farm schedule-run
--project-arn arn:aws:devicefarm:us-west-2:123:project:1
--app-arn arn:aws:devicefarm:us-west-2:123:app:1
--device-pool-arn arn:aws:devicefarm:us-west-2:123:pool:1
--test-arn arn:aws:devicefarm:us-west-2:123:test:1'''
}
}
}
}
Сучасні Device Farm надають не лише запуск тестів, але й супутні інструменти для діагностики, моніторингу продуктивності та інтеграції з іншими сервісами розробки. Набір функцій варіюється між провайдерами, але ядро лишається спільним.
Підтримуються всі основні фреймворки: Espresso та UI Automator для Android, XCTest та XCUITest для iOS, Appium та Calabash для кросплатформенних проектів. Device Farm запускає тести без модифікації коду — достатньо вказати тестовий фреймворк при конфігурації.
Розробник отримує віддалений доступ до реального пристрою через браузер: дотики, свайпи, поворот екрана, натискання кнопок — всі дії транслюються в реальному часі. Інтерактивний режим незамінний для відтворення рідкісних багів, які не покриті автотестами. AWS Device Farm надає до 60 хвилин ручного сеансу без додаткової плати.
Після кожного прогону Device Farm генерує звіт: відеозапис тесту, покрокові скріншоти, логи пристрою (logcat для Android, syslog для iOS), дані про продуктивність (CPU, пам’ять, мережа) та crash-стек. Ці дані допомагають локалізувати проблему без відтворення на локальному пристрої.
Всі великі Device Farm надають плагіни для Jenkins, GitLab CI, GitHub Actions та CircleCI. Webhook-повідомлення сповіщають команду про результати тестів через Slack, Telegram або електронну пошту. Налаштування CI/CD інтеграції — стандартна практика для команд, що практикують неперервну поставку.
| Функція | AWS Device Farm | BrowserStack | Firebase Test Lab |
|---|---|---|---|
| Фізичні пристрої | Так | Так | Так |
| Емулятори | Так | Так | Так |
| Ручне тестування | Так | Так | Ні |
| Локалізація багів | Відео + логи | Відео + логи | Тільки логи |
| Безкоштовний ліміт | 1000 хв/міс | 60 хв пробний | Тести в Firebase — безкоштовні |
Ринок Device Farm представлений трьома основними категоріями: хмарні провайдери загального призначення (AWS), спеціалізовані сервіси тестування (BrowserStack) та інструменти в екосистемі платформи (Firebase). Вибір залежить від стеку технологій та бюджету команди.
Інтегрований з екосистемою Amazon Web Services. Розробники, які вже використовують AWS для хостінгу та CI/CD, отримують єдиний контракт та безшовну інтеграцію з CodePipeline та CodeBuild. AWS Device Farm підтримує тестування Android, iOS та веб-додатків на фізичних пристроях та емуляторах.
Найбільший незалежний провайдер з парком понад 3 000 реальних пристроїв. BrowserStack відомий зручним веб-інтерфейсом, швидкістю надання пристрою (10–15 секунд) та підтримкою Appium без складного налаштування. Сервіс автоматично оновлює парк пристроїв протягом тижня після виходу нової моделі.
Безкоштовний сервіс від Google для Android-додатків з можливістю тестування iOS (обмежено). Firebase Test Lab особливо привабливий для стартапів: базові сценарії тестування доступні без підписки. Інтеграція з Firebase Console та Crashlytics дозволяє пов’язувати падіння тестів з реальними крашами в продакшні.
На ринку присутні: Samsung Remote Test Lab (безкоштовний доступ до пристроїв Samsung), Kobiton (орієнтований на enterprise з on-premise розгортанням), Perfecto (придбаний Perforce, фокус на фінансовому секторі) та Sauce Labs (один з найстаріших сервісів, тепер частина Tricentis).
Розглянемо інтеграцію Firebase Test Lab з командним рядком для Android-додатка. Firebase Test Lab запускає тести через gcloud CLI, що дозволяє вбудувати запуск в будь-який CI-конвієр без додаткових плагінів. Приклад демонструє мінімальну конфігурацію smoke-тесту на трьох пристроях.
# Установка gcloud CLI и авторизация
gcloud auth login
gcloud config set project my-android-app
# Загрузка APK в Firebase Test Lab
gcloud firebase test android run \
--app app-debug.apk \
--test app-debug-test.apk \
--type instrumentation \
--device model=Pixel7,version=34 \
--device model=SamsungS23,version=33 \
--device model=OnePlus12,version=34 \
--timeout 30m \
--results-bucket gs://my-app-test-results
Команда завантажує два файли: сам білд та тестовий APK з інструментаційними тестами Espresso. Firebase Test Lab автоматично обирає останню доступну версію ОС для кожної моделі, якщо версія не вказана явно. Результати зберігаються в Google Cloud Storage у форматі XML та HTML для перегляду в браузері.
Для автоматичного запуску при кожному push використовуйте GitHub Actions. Воркфлоу збирає додаток, запускає Firebase Test Lab та повертає статус перевірки.
name: Android CI with Device Farm
on: [push]
jobs:
test-on-devices:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- run: ./gradlew assembleDebug assembleDebugAndroidTest
- uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- run: gcloud firebase test android run
--app app/build/outputs/apk/debug/app-debug.apk
--test app/build/outputs/apk/androidTest/debug/app-debug-test.apk
--device model=Pixel8,version=35
Вартість Device Farm складається з кількох параметрів: кількість паралельних сесій, тип пристрою (фізичний або емулятор), тривалість тестування та додаткові функції. Важливо розуміти структуру витрат до вибору провайдера, щоб уникнути несподіваних витрат при масштабуванні.
Більшість провайдерів тарифікують фактичний час використання пристрою. Фізичні пристрої коштують у 2–5 разів дорожче за емулятори. AWS Device Farm пропонує 1000 безкоштовних хвилин на місьць для нових акаунтів, BrowserStack — 60 хвилин пробного періоду. Середня вартість хвилини на фізичному Android-пристрої становить $0.05–0.17.
Для регулярного тестування вигідніша фіксована підписка. BrowserStack пропонує план Team за $299/місь на 3 користувачів з необмеженою кількістю хвилин на фізичних пристроях. AWS Device Farm не має фіксованої підписки — оплата йде за кожну хвилину, що зручно при нерегулярному навантаженні, але дорожче при інтенсивному використанні.
При розрахунку бюджету враховуйте: зберігання артефактів тестування (відео, скріншоти, логи) — AWS Device Farm зберігає результати до 90 днів без додаткової плати, BrowserStack — до 30 днів; мережевий трафік при завантаженні великих APK/IPA; кількість паралельних сесій — збільшення паралелізму може потребувати дорожчого тарифу.
Часто запитувані питання
Емулятор імітує пристрій програмно на вашому комп’ютері, а Device Farm надає доступ до реального фізичного пристрою з оригінальною прошивкою, процесором та сенсорами. Тільки на реальному пристрої можна перевірити камеру, GPS, температуру корпусу та взаємодію з мережею оператора.
Так, усі великі провайдери підтримують iOS. Для тестування потрібен IPA-файл, зібраний з development-сертифікатом. BrowserStack та AWS Device Farm надають фізичні iPhone та iPad, Firebase Test Lab підтримує iOS через симулятори macOS у дата-центрі.
Jenkins інтегрується через плагіни (наприклад, AWS Device Farm Plugin) або CLI-команди, що запускаються на етапі збірки. Плагін автоматично завантажує артефакти збірки, запускає тести на вибраних пристроях та повертає результат в Jenkins pipeline.
Для стартапу оптимальний Firebase Test Lab — базові можливості безкоштовні, інтеграція з Android Studio працює з коробки. Для iOS-проектів BrowserStack надає 60 хвилин безкоштовного тестування. По мірі зростання команди переходять на платні підписки з повним парком пристроїв.
Великі провайдери дотримуються сертифікації SOC 2 та шифрують дані під час передачі та зберігання. AWS Device Farm працює в ізольованих акаунтах AWS, BrowserStack використовує одноразові пристрої для кожної сесії. Конфіденційні дані (API-ключі) рекомендується виносити в build config.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також