Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

Шаг 1. Настройте локальную среду Google Cloud SDK.

  1. Загрузите Google Cloud SDK.
  2. Это включает в себя инструмент командной строки gcloud.

  3. Убедитесь, что ваша установка обновлена ​​и включает команду gcloud firebase :
          gcloud components update
    .
  4. Войдите в интерфейс командной строки gcloud, используя свою учетную запись Google:
          gcloud auth login
    .
  5. Установите свой проект Firebase в gcloud, где PROJECT_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 для versions iOS устройства), замените models , version или locales вместо dimension в следующей команде:

    gcloud firebase test ios dimension list

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

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

  3. После того, как вы выбрали набор тестовых измерений, вы можете запустить тесты в Test Lab с помощью команды 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-файле нет ресурсов, содержащих прямые ссылки на идентификатор пакета приложения.

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

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

Запустите тест игрового цикла

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

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

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

--app

Требуется : абсолютный путь (GCS или файловая система) к файлу 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 не смогла определить, прошла ли тестовая матрица или нет, из-за непредвиденной ошибки.
19 Тестовая матрица была отменена пользователем.
20 Произошла ошибка тестовой инфраструктуры.

Шаг 5 : Изучите результаты теста

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

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

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