Тест с помощью интерфейса командной строки gcloud

В этом руководстве описывается, как запустить тест XCTest или Game Loop с помощью интерфейса командной строки gcloud.

Шаг 1: Настройка локальной среды Google Cloud SDK

  1. Загрузите Google Cloud SDK.
  2. Сюда входит инструмент командной строки gcloud.

  3. Убедитесь , что установка уточненного и включает в себя gcloud firebase команды:
          gcloud components update
  4. Войти в CLI gcloud , используя учетную запись Google:
          gcloud auth login
  5. Установите проект Firebase в gcloud, где PROJECT_ID является ID вашего Firebase проекта:
         gcloud config set project PROJECT_ID

Шаг 2: Запустите ваш тест

Запустите XCTest

  1. Загрузите zip - файл теста, выполнив следующую команду (если вы еще не упакованы приложение, см Упаковка вашего XCTest ):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. Выберите размер теста.

    Test Lab позволяет запускать тесты на различных версиях iOS, устройствах, ориентациях экрана и регионах. Эти конфигурации известны как размеры испытания Испытания в. Чтобы увидеть параметры для каждого измерения (например, поддерживаемые версии Xcode для IOS версии устройства), заменяющие models , versions , или locales для dimension в следующей команде:

    gcloud firebase test ios dimension list

    Ориентация экрана несколько проще, так как его только варианты portrait и landscape .

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

  3. После того как вы выбрали набор размеров тестов, вы можете иметь Lab Test запустить тесты с использованием firebase test ios run команду. Для каждой комбинации размеров тестов вы хотите испытать на, включает в себя отдельный --device флаг:

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \
     etc...

    Возможно, что ваш тест завершится неудачно из-за несовместимости между версией Xcode, с которой был построен тест, и версией Xcode по умолчанию, используемой Test Lab. Чтобы указать поддерживаемую версию Xcode для теста, используйте --xcode-version флаг:

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --xcode-version=11.3

Специальные права на тестирование

Для тестирования прав , которые требуют явного идентификатор приложения, вы можете сделать это, установив --test-special-entitlements из флага. Test Lab повторно подписывает приложение с новым идентификатором пакета для поддержки специальных прав, поэтому убедитесь, что в вашем zip-файле нет ресурсов, содержащих прямые ссылки на идентификатор пакета приложения.

Всплывающие уведомления

Для авторизации запросов толчка уведомления, пользователи могут создавать JSON веб - токены с помощью закрытого ключа подписи вместе с ключом ID - C7FD9DJAA8 и Team ID - 9CKCGNNUQN. Сгенерированные токены будут действительны в течение одного часа и должны обновляться каждые 60 минут. Подробнее о Создание на основе маркеров Подключение к APN , .

Запустите тест Game Loop

Запуск в gcloud beta firebase test ios run команду и использовать следующие флаги для настройки прогона:

Флаги для тестов Game Loop
--type

Требуется: Определяет тип теста IOS вы хотите запустить. Вы можете ввести типы тестовых xctest ( по умолчанию) или game-loop .

--app

Требуется: Абсолютный путь (ГКС или файловая система) в файл IPA вашего приложения. Этот флаг действителен только при запуске тестов Game Loop.

--scenario-numbers

Циклы (также известные как сценарии), которые вы хотите запустить в своем приложении. Вы можете ввести один цикл, список или цикл или диапазон циклов. Цикл по умолчанию - 1.

Например, --scenario-numbers=1-3,5 проходит петлю 1, 2, 3 и 5.

--device-model

Физическое устройство , которое вы хотите запустить тест на (выяснить , какие доступны устройства можно использовать).

--timeout

Максимальная продолжительность выполнения теста. Вы можете ввести целое число, чтобы представить продолжительность в секундах, или целое число и перечисление, чтобы представить продолжительность как более длинную единицу времени.

Например:

  • --timeout=200 сил вашего теста прекратить , когда он работает до 200 секунд.
  • --timeout=1h заставляет тест прекратить , когда он работает до часа.

Например, следующая команда запускает тест Game Loop, который выполняет циклы 1, 4, 6, 7 и 8 на iPhone 8 Plus:

gcloud beta firebase test ios run
 --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8
 --device-model=iphone8plus

Для получения дополнительной информации о CLI gcloud см справочную документацию .

Шаг 4 (Необязательно): Автоматизация будущих тестов вы строите

Создание сценариев команд gcloud с помощью Test Lab

Вы можете использовать сценарии оболочки или пакетные файлы для автоматизации команд тестирования мобильных приложений, которые в противном случае вы бы запускали с помощью командной строки gcloud. Этот пример сценария bash запускает XCTest с двухминутным таймаутом и сообщает, успешно ли завершился тест:

if gcloud firebase test ios run --test MyTest.zip --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

Коды выхода скрипта

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

Код выхода Примечания
0 Все тестовые исполнения пройдены.
1 Произошел общий сбой. Возможные причины: несуществующее имя файла или ошибка HTTP / сети.
2 Тестирование завершено, поскольку были предоставлены неизвестные команды или аргументы.
10 Один или несколько тестовых примеров (проверенные классы или методы классов) в ходе выполнения теста не прошли.
15 Лаборатория Firebase Test Lab не смогла определить, прошла или не прошла тестовая матрица из-за непредвиденной ошибки.
19 Тестовая матрица была отменена пользователем.
20 Произошла ошибка тестовой инфраструктуры.

Шаг 5: Исследовать результаты испытаний

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

Следующий шаг

Прочитайте документацию Google Cloud SDK для изучения тестирования вариантов, которые обычно доступны или в бета - версии .