Google is committed to advancing racial equity for Black communities. See how.
Эта страница переведена с помощью Cloud Translation API.
Switch to English

Тест с помощью интерфейса командной строки 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 для версии iOS устройства), замените models , versions или locales для dimension в следующей команде:

    gcloud firebase test ios dimension list

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

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

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

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

Запустите команду 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

Дополнительные сведения о интерфейсе командной строки 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, чтобы узнать больше о том, как интерпретировать результаты тестирования.

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

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