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 или email. Настройка 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 (acquired by 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 автоматически выбирает последнюю доступную версию ОС для каждой модели, если version не указана явно. Результаты сохраняются в 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 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также