Firebase Test Lab позволяет тестировать приложение на разных устройствах и в разных конфигурациях. В этом руководстве по началу работы приведены инструкции по реализации, а также вводная информация о предложениях Test Lab для Android.
Информацию о квотах и тарифных планах Test Lab можно найти в разделе Использование, квоты и цены.
Основные понятия
Когда вы запускаете тест или набор тестов на выбранных устройствах и конфигурациях, Test Lab выполняет тест для вашего приложения в пакетном режиме, а затем отображает результаты в виде матрицы тестов.
Устройства × Выполнения тестов = Матрица тестов
- Устройство
- Физическое или виртуальное устройство (только Android), на котором вы запускаете тест, например телефон, планшет или носимое устройство. Устройства в матрице тестов идентифицируются по модели, версии ОС, ориентации экрана и региональным настройкам (также известным как настройки местоположения и языка).
- Тест, выполнение теста
- Тест (или набор тестовых сценариев), который будет запущен на устройстве. Вы можете запустить один тест на одном устройстве или разделить его на несколько частей и запустить их на разных устройствах.
- Матрица тестов
- Содержит статусы и результаты выполнения тестов. Если хотя бы одно выполнение теста в матрице завершится неудачно, вся матрица будет считаться невыполненной.
Шаг 1. Подготовьте тест для загрузки в Test Lab.
Доступные типы тестирования
С помощью Test Lab можно выполнить следующие тесты: Обратите внимание, что все типы тестов могут выполняться не более 45 минут на физических устройствах и не более 60 минут на виртуальных. Любое необработанное исключение приведет к сбою при тестировании.
Инструментальный тест или инструментальный модульный тест – тест, написанный с помощью фреймворка Espresso или UI Automator. С помощью этого теста вы можете сделать явные утверждения о состоянии вашего приложения, чтобы проверить правильность его работы, используя AndroidJUnitRunnerAPIs.
Инструкции по подготовке теста к запуску в Test Lab можно найти в статье Как запустить инструментальный тест.
Инструкции по созданию инструментального теста можно найти в документации для разработчиков Android.
Автоматизированное тестирование. Позволяет проанализировать интерфейс приложения и методично исследовать его, имитируя действия пользователя. Писать код не требуется. Подробнее об автоматизированном тестировании…
Тест с игровым циклом. Тест, в котором используется деморежим для имитации действий игрока в мобильных играх. Это быстрый и масштабируемый способ убедиться, что игра работает хорошо. При выборе тестирования игрового цикла вы можете:
Как писать тесты, нативные для вашего игрового движка
Не пишите один и тот же код для разных интерфейсов или фреймворков тестирования.
При желании вы можете создать несколько циклов для выполнения теста. Подробнее о тестировании игровых циклов… Вы также можете упорядочить циклы с помощью ярлыков, чтобы отслеживать их и перезапускать определенные циклы.
Инструкции по запуску этого теста с помощью Test Lab приведены в статье Как запустить тест игрового цикла.
Инструменты для проведения тестирования
Для проведения тестирования можно выбрать следующие инструменты:
Рекомендуется для новых пользователей. Консоль Firebase позволяет загрузить приложение и запустить тестирование в браузере. Инструкции по проведению тестирования с помощью этого инструмента приведены в статье Тестирование с помощью консоли Firebase.
Интеграция с Android Studio позволяет тестировать приложение, не выходя из среды разработки. Инструкции по запуску тестов с помощью этого инструмента можно найти в статье Тестирование с помощью Android Studio.
Интерфейс командной строки gcloud позволяет запускать тесты из командной строки в интерактивном режиме, а также подходит для создания скриптов в рамках автоматизированного процесса сборки и тестирования. Инструкции по запуску тестов с помощью этого инструмента приведены в разделе Тестирование с помощью gcloud CLI.
Вы также можете бесплатно протестировать приложение с помощью Test Lab, загрузив и опубликовав APK-файлы в Google Play через альфа- или бета-канал. Подробнее о том, как выявить проблемы с помощью отчета о тестировании и как работает автоматизированное тестирование…
Шаг 2. Выберите устройство для тестирования
Test Lab поддерживает тестирование на нескольких марках и моделях устройств Android, установленных и работающих в центре обработки данных Google. Тестирование на устройствах в Test Lab помогает выявить проблемы, которые могут не возникнуть при тестировании приложения с помощью эмуляторов в Android Studio. Подробнее о доступных устройствах…
Шаг 3. Проверьте результаты тестирования
Независимо от того, как вы запускаете тесты, все их результаты обрабатываются Test Lab и доступны для просмотра онлайн.
Сводка результатов тестирования сохраняется автоматически. Ее можно посмотреть в консоли Firebase. В нем содержатся наиболее важные данные для вашего отчета о тестировании, включая видеозаписи и скриншоты, а также количество успешных, неуспешных и нестабильных тестов.
Необработанные результаты тестирования содержат журналы тестирования и сведения о сбоях в работе приложения. Они автоматически сохраняются в сегменте Google Cloud. Если вы укажете сегмент, то будете нести ответственность за расходы на хранение. Если вы не укажете сегмент, Test Lab создаст его для вас бесплатно.
Подробнее о том, как анализировать результаты Firebase Test Lab…
Если вы запускаете тестирование из Android Studio, то можете просматривать результаты прямо в среде разработки.
Очистка устройства
Google очень серьезно относится к безопасности данных вашего приложения. После каждого тестирования мы удаляем данные приложения и сбрасываем системные настройки на физических устройствах, чтобы подготовить их к новым тестам. Если устройство поддерживает прошивку с пользовательским образом для восстановления, мы выполняем ее между запусками тестов.
Экземпляры виртуальных устройств, используемые Test Lab, удаляются после использования, поэтому для каждого тестового запуска используется новый экземпляр виртуального устройства.
Test Lab и сервисы Google Play
На устройствах Test Lab обычно установлена последняя версия SDK сервисов Google Play, но иногда после выпуска новой версии SDK обновление может занять несколько дней. Обратите внимание, что на некоторых устройствах могут возникнуть проблемы с совместимостью.
Как разрешить тестовым устройствам доступ к частным бэкенд-серверам
Для правильной работы во время тестирования некоторым мобильным приложениям требуется связь с частными серверными службами. Если ваши бэкенд-серверы защищены правилами брандмауэра, вы можете разрешить доступ для физических и виртуальных устройств Test Lab, используя блоки IP-адресов ниже, чтобы открыть маршруты через брандмауэр.
Мобильная реклама
Test Lab предоставляет масштабируемую инфраструктуру, которая автоматизирует тестирование приложений. К сожалению, этой возможностью могут злоупотреблять вредоносные приложения, предназначенные для получения мошеннического дохода от рекламы.
Чтобы устранить эту проблему, выполните следующие действия:
Если вы используете или работаете со сторонними поставщиками цифровой рекламы (например, рекламными сетями или платформами покупателя), разработчикам приложений рекомендуется использовать тестовые объявления во время разработки и тестирования.
Если вам необходимо использовать в тесте реальные объявления, сообщите поставщикам цифровой рекламы, с которыми вы работаете, что нужно отфильтровать доходы и весь соответствующий трафик, сгенерированный Test Lab, используя блоки IP-адресов, указанные ниже. Вам не нужно уведомлять поставщиков рекламных технологий, принадлежащих Google. Test Lab сделает это за вас.
IP-адреса, используемые устройствами Test Lab
Весь сетевой трафик, генерируемый устройствами Test Lab, поступает из следующих блоков IP-адресов.
Вы также можете получить доступ к этому списку с помощью
gcloud beta firebase test ip-blocks list
команды
в интерфейсе командной строки gcloud. Список обновляется в среднем раз в год.
| Платформа и тип устройства | Блок IP-адресов CIDR |
|---|---|
| Физические устройства Android и iOS, виртуальные устройства Arm |
70.32.128.0/19 (добавлено в феврале 2022 г.) 108.177.6.0/23 108.177.18.192/26 (добавлено в феврале 2022 г.) 108.177.29.64/27 (расширен в феврале 2022 г.) 108.177.31.160/27 (добавлено в феврале 2022 г.) 199.36.156.8/29 (добавлено в феврале 2022 г.) 199.36.156.16/28 (добавлено в феврале 2022 г.) 209.85.131.0/27 (добавлено в феврале 2022 г.) 2001:4860:1008::/48 (добавлено в феврале 2022 г.) 2001:4860:1018::/48 (добавлено в феврале 2022 г.) 2001:4860:1019::/48 (добавлено в феврале 2022 г.) 2001:4860:1020::/48 (добавлено в феврале 2022 г.) 2001:4860:1022::/48 (добавлено в феврале 2022 г.) 2001:4860:101d::/48 (добавлено в октябре 2025 г.) 2001:4860:101e::/48 (добавлено в октябре 2025 г.) 2001:4860:1031::/48 (добавлено в октябре 2025 г.) 70.32.128.48/28 (добавлено в апреле 2024 г.) 70.32.150.192/27 (добавлено в сентябре 2025 г.) 108.177.6.0/27 (добавлено в сентябре 2025 г.) 108.177.24.160/27 (добавлено в сентябре 2025 г.) 108.177.29.0/27 (добавлено в сентябре 2025 г.) 108.177.25.128/27 (добавлено в мае 2026 г.) 108.177.26.128/26 (добавлено в мае 2026 г.) 108.177.29.192/26 (добавлено в мае 2026 г.) 172.217.120.64/26 (добавлено в мае 2026 г.) 172.217.120.128/26 (добавлено в мае 2026 г.) 2001:4860:1037::/48 (добавлено в мае 2026 г.) 2001:4860:1038::/48 (добавлено в мае 2026 г.) 2001:4860:103a::/48 (добавлено в мае 2026 г.) |
| Виртуальные устройства Android (не ARM) |
34.68.194.64/29 (добавлено в ноябре 2019 г.) 34.69.234.64/29 (добавлен в ноябре 2019 г.) 34.73.34.72/29 (добавлено в ноябре 2019 г.) 34.73.178.72/29 (добавлено в ноябре 2019 г.) 34.74.10.72/29 (добавлено в феврале 2022 г.) 34.136.2.136/29 (добавлено в феврале 2022 г.) 34.136.50.136/29 (добавлено в феврале 2022 г.) 34.145.234.144/29 (добавлено в феврале 2022 г.) 35.192.160.56/29 35.196.166.80/29 35.196.169.240/29 35.203.128.0/28 35.234.176.160/28 35.243.2.0/27 (добавлен в июле 2019 г.) 35.245.243.240/29 (добавлено в феврале 2022 г.) 199.192.115.0/30 199.192.115.8/30 199.192.115.16/29 |
| IP-блоки устройств больше не используются |
74.125.122.32/29 (удален в феврале 2022 г.) 216.239.44.24/29 (удален в феврале 2022 г.) |