Начните работу с Firebase Test Lab для iOS

Firebase Test Lab позволяет качественно протестировать ваше приложение на различных устройствах и конфигурациях. В этом руководстве представлен обзор ключевых концепций Test Lab, предложений iOS и инструкции по началу тестирования.

Сведения о квотах и ​​тарифных планах Test Lab см. в разделе Использование, квоты и цены .

Ключевые понятия и термины

Когда вы запускаете тест или набор тестовых случаев для выбранных вами устройств и конфигураций, Test Lab запускает пакетное тестирование вашего приложения, а затем отображает результаты в виде тестовой матрицы .

Устройства × Выполнения тестов = Матрица тестов

Устройство
Физическое или виртуальное устройство (только Android), на котором вы запускаете тест, например телефон, планшет или носимое устройство. Устройства в тестовой матрице идентифицируются по модели устройства, версии ОС, ориентации экрана и языковому стандарту (также известному как географические и языковые настройки).
Тестирование, выполнение теста
Тест (или набор тестовых случаев), который нужно запустить на устройстве. Вы можете запустить один тест для каждого устройства или, при необходимости, разделить тест и запустить его тестовые примеры на разных устройствах.
Тестовая матрица
Содержит статусы и результаты тестов для выполнения тестов. Если выполнение какого-либо теста в матрице завершается неудачно, то вся матрица завершается неудачей.

Шаг 1. Подготовьте тест для загрузки в тестовую лабораторию.

Вы можете запустить следующие тесты с помощью Test Lab. Обратите внимание, что все типы тестов могут выполняться на физических устройствах максимум 45 минут, и любое неперехваченное исключение приведет к сбою теста.

  • XCTest (включая XCUITests) : модульный тест, написанный вами с использованием платформы XCTest . Посетите раздел «Создание XCTest» , чтобы получить инструкции по изменению XCTest для запуска с Test Lab.

  • Тест Game Loop : тест, в котором используется «демо-режим» для имитации действий игрока в игровых приложениях. Это быстрый и масштабируемый способ убедиться, что ваша игра работает хорошо для пользователей. Если вы решите запустить тест Game Loop, вы сможете:

    • Напишите тесты, встроенные в ваш игровой движок.

    • Избегайте написания одного и того же кода для разных пользовательских интерфейсов или платформ тестирования.

    • При необходимости создайте несколько циклов для выполнения одного теста. Вы также можете организовывать циклы с помощью меток, чтобы отслеживать их и повторно запускать определенные циклы.

    Посетите раздел «Запуск теста Game Loop» , чтобы получить инструкции по запуску теста в Test Lab.

Шаг 2. Выберите инструмент для проведения теста.

Вы можете выбрать следующие инструменты для запуска теста:

  • Консоль Firebase позволяет загрузить приложение и начать тестирование из любой точки мира. Инструкции по использованию этого инструмента см. в разделе «Тестирование с помощью консоли Firebase» .

  • Интерфейс командной строки (CLI) gcloud позволяет запускать тесты из командной строки в интерактивном режиме, а также хорошо подходит для написания сценариев в рамках автоматизированного процесса сборки и тестирования. Инструкции по использованию этого инструмента см. в разделе «Тестирование с помощью интерфейса командной строки gcloud ».

  • Прежде чем тестировать на реальных устройствах, запустите тест локально на симуляторе, чтобы убедиться, что он работает должным образом. Инструкции см. в разделе «Проверка локально» .

Шаг 3. Укажите устройства для тестирования.

С помощью Test Lab вы можете провести тестирование своего приложения на широком спектре устройств и моделей iOS, размещенных в центре обработки данных Google. Дополнительную информацию см. в разделе Доступные устройства.

Шаг 4. Просмотрите результаты теста.

Независимо от того, как вы инициируете тестирование, все результаты тестов управляются Test Lab и их можно просмотреть в Интернете.

Сводка результатов теста автоматически сохраняется и может быть просмотрена в консоли Firebase. Он содержит наиболее важные данные для вашего теста, включая видеоролики для конкретных тестовых случаев, снимки экрана, количество тестов, которые прошли, не прошли или получили ненадежные результаты и многое другое.

Необработанные результаты тестирования содержат журналы тестирования и сведения об ошибках приложения и автоматически сохраняются в корзине Google Cloud. Если вы указываете сегмент, вы несете ответственность за стоимость хранилища. Если вы не укажете сегмент, Test Lab создаст его бесплатно.

Дополнительные сведения см. в разделе Анализ результатов тестовой лаборатории Firebase.

Очистка устройства

Google очень серьезно относится к безопасности данных вашего приложения. Мы следуем лучшим отраслевым практикам по удалению данных приложений и сбросу системных настроек для физических устройств после каждого запуска теста, чтобы гарантировать, что они готовы к запуску новых тестов. Для устройств, на которые мы можем прошить собственный образ восстановления, мы делаем еще один шаг вперед, прошивая эти устройства между тестовыми запусками.

Экземпляры виртуальных устройств, используемых Test Lab, удаляются после их использования, поэтому при каждом выполнении теста используется новый экземпляр виртуального устройства.


Разрешение устройствам Test Lab получать доступ к частным серверным серверам

Некоторым мобильным приложениям необходимо взаимодействовать с частными серверными службами для правильной работы во время тестирования. Если ваши внутренние серверы защищены правилами брандмауэра, вы можете разрешить доступ физическим и виртуальным устройствам 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 (добавлен 02.2022)

108.177.6.0/23

108.177.18.192/26 (добавлен 02.2022)

108.177.29.64/27 (расширен с 02.02.2022 г.)

108.177.31.160/27 (добавлен 02.2022)

199.36.156.8/29 (добавлен 02.2022)

199.36.156.16/28 (добавлен 02.2022)

209.85.131.0/27 (добавлен 02.2022)

2001:4860:1008::/48 (добавлено 02.2022)

2001:4860:1018::/48 (добавлено 02.2022)

2001:4860:1019::/48 (добавлено 02.2022)

2001:4860:1020::/48 (добавлено 02-2022)

2001:4860:1022::/48 (добавлено 02.2022)

Виртуальные устройства Android (без Arm)

34.68.194.64/29 (добавлен 11.2019)

34.69.234.64/29 (добавлен 11.2019)

34.73.34.72/29 (добавлено 11.2019)

34.73.178.72/29 (добавлен 11.2019)

34.74.10.72/29 (добавлено 02-2022)

34.136.2.136/29 (добавлен 02.02.2022)

34.136.50.136/29 (добавлен 02.02.2022)

34.145.234.144/29 (добавлен 02.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 (добавлено 07.2019)

35.245.243.240/29 (добавлен 02.2022)

199.192.115.0/30

199.192.115.8/30

199.192.115.16/29

IP-блоки устройств больше не используются

74.125.122.32/29 (удален 02.2022)

216.239.44.24/29 (удален 02.2022)