В этом руководстве описывается, как запустить тест XCTest или Game Loop с помощью интерфейса командной строки gcloud.
Шаг 1 : Настройте локальную среду Google Cloud SDK
- Загрузите Google Cloud SDK
- Убедитесь, что ваша установка обновлена и включает команду
gcloud firebase
:gcloud components update
- Войдите в интерфейс командной строки gcloud, используя свою учетную запись Google:
gcloud auth login
- Настройте свой проект Firebase в gcloud, где PROJECT_ID — это идентификатор вашего проекта Firebase:
gcloud config set project PROJECT_ID
Сюда входит инструмент командной строки gcloud.
Шаг 2 : Проведите тест
Запустите XCTest
Загрузите .zip-файл вашего теста, выполнив следующую команду (если вы еще не упаковали свое приложение, см. раздел Упаковка XCTest ):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Выберите параметры теста.
Test Lab позволяет вам запускать тесты на различных версиях iOS, устройствах, ориентациях экрана и локалях. Эти конфигурации известны как тестовые измерения теста. Чтобы увидеть параметры для каждого измерения (например, поддерживаемые версии Xcode для версии iOS устройства), замените
models
,versions
илиlocales
наdimension
в следующей команде:gcloud firebase test ios dimension list
Ориентация экрана несколько проще, поскольку доступны только
portrait
иlandscape
ориентация.Просмотрите список тестовых измерений и выберите несколько комбинаций, на которых вы хотели бы запустить тест. Посетите раздел «Ценовые планы», чтобы узнать максимальное количество комбинаций, которые вы можете запустить в день.
После того, как вы выбрали набор тестовых измерений, вы можете заставить 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=15
Чтобы вам было легче идентифицировать и находить ваши тестовые матрицы в консоли Firebase , вы можете пометить вашу тестовую матрицу с помощью флага
--client-details matrixLabel="<label>"
в следующем примере:gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --client-details matrixLabel="my label"
Тестовые специальные права
Чтобы протестировать права, требующие явного идентификатора приложения, вы можете сделать это, установив флаг --test-special-entitlements
. Test Lab повторно подписывает приложение с новым идентификатором пакета для поддержки специальных прав, поэтому убедитесь, что в вашем zip-файле нет ресурсов, содержащих прямые ссылки на идентификатор пакета приложения.
- Push-уведомления
apns-environment
- Персональный VPN
com.apple.developer.networking.vpn.api
Для авторизации запросов push-уведомлений пользователи могут создавать веб-токены JSON, используя закрытый ключ подписи вместе с идентификатором ключа - C7FD9DJAA8 и идентификатором команды - 9CKCGNNUQN . Сгенерированные токены будут действительны в течение одного часа и должны обновляться каждые 60 минут. Подробнее об установлении подключения к APN на основе токенов.
Группы приложенийИдентификаторы групп приложений являются универсально уникальными. Это означает, что при повторном подписании пользовательских приложений мы можем использовать только идентификатор группы приложений, связанный с учетной записью разработчика Test Lab . Если ваш тест опирается на группы приложений, ваш тест не будет пройден.
Запустите тест игрового цикла
Запустите команду gcloud beta firebase test ios run
и используйте следующие флаги для настройки запуска:
Флаги для тестов игрового цикла | |
---|---|
--type | Обязательно : Указывает тип теста iOS, который вы хотите запустить. Вы можете ввести типы тестов |
--app | Обязательно : Абсолютный путь (GCS или файловая система) к файлу IPA вашего приложения. Этот флаг действителен только при запуске тестов Game Loop. |
--scenario-numbers | Циклы (также известные как сценарии), которые вы хотите запустить в своем приложении. Вы можете ввести один цикл, список циклов или диапазон циклов. Цикл по умолчанию — 1. Например, |
--device-model | Физическое устройство, на котором вы хотите провести тест (узнайте, какие доступные устройства вы можете использовать). |
--timeout | Максимальная продолжительность, которую вы хотите, чтобы ваш тест запустил. Вы можете ввести целое число, чтобы представить продолжительность в секундах, или целое число и перечисление, чтобы представить продолжительность как более длинную единицу времени. Например:
|
Например, следующая команда запускает тест игрового цикла, который выполняет циклы 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 CLI см. в справочной документации .
Шаг 3 (необязательно) : автоматизируйте будущие тесты, которые вы создаете
Написание команд 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 | Произошла ошибка тестовой инфраструктуры. |
Шаг 4 : Изучите результаты теста
Когда тест начнется, вы получите ссылку на страницу результатов теста . Тесты могут выполняться в течение нескольких минут в зависимости от количества выбранных вами различных конфигураций и установленной для ваших тестов длительности тайм-аута. После запуска тестов вы можете просмотреть результаты тестов. Подробнее об интерпретации результатов тестов см. в разделе Анализ результатов Firebase Test Lab .
Следующий шаг
Ознакомьтесь с документацией Google Cloud SDK, чтобы изучить общедоступные или находящиеся в стадии бета- тестирования варианты тестирования.
,В этом руководстве описывается, как запустить тест XCTest или Game Loop с помощью интерфейса командной строки gcloud.
Шаг 1 : Настройте локальную среду Google Cloud SDK
- Загрузите Google Cloud SDK
- Убедитесь, что ваша установка обновлена и включает команду
gcloud firebase
:gcloud components update
- Войдите в интерфейс командной строки gcloud, используя свою учетную запись Google:
gcloud auth login
- Настройте свой проект Firebase в gcloud, где PROJECT_ID — это идентификатор вашего проекта Firebase:
gcloud config set project PROJECT_ID
Сюда входит инструмент командной строки gcloud.
Шаг 2 : Проведите тест
Запустите XCTest
Загрузите .zip-файл вашего теста, выполнив следующую команду (если вы еще не упаковали свое приложение, см. раздел Упаковка XCTest ):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Выберите параметры теста.
Test Lab позволяет вам запускать тесты на различных версиях iOS, устройствах, ориентациях экрана и локалях. Эти конфигурации известны как тестовые измерения теста. Чтобы увидеть параметры для каждого измерения (например, поддерживаемые версии Xcode для версии iOS устройства), замените
models
,versions
илиlocales
наdimension
в следующей команде:gcloud firebase test ios dimension list
Ориентация экрана несколько проще, поскольку доступны только
portrait
иlandscape
ориентация.Просмотрите список тестовых измерений и выберите несколько комбинаций, на которых вы хотели бы запустить тест. Посетите раздел «Ценовые планы», чтобы узнать максимальное количество комбинаций, которые вы можете запустить в день.
После того, как вы выбрали набор тестовых измерений, вы можете заставить 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=15
Чтобы вам было легче идентифицировать и находить ваши тестовые матрицы в консоли Firebase , вы можете пометить вашу тестовую матрицу с помощью флага
--client-details matrixLabel="<label>"
в следующем примере:gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --client-details matrixLabel="my label"
Тестовые специальные права
Чтобы протестировать права, требующие явного идентификатора приложения, вы можете сделать это, установив флаг --test-special-entitlements
. Test Lab повторно подписывает приложение с новым идентификатором пакета для поддержки специальных прав, поэтому убедитесь, что в вашем zip-файле нет ресурсов, содержащих прямые ссылки на идентификатор пакета приложения.
- Push-уведомления
apns-environment
- Персональный VPN
com.apple.developer.networking.vpn.api
Для авторизации запросов push-уведомлений пользователи могут создавать веб-токены JSON, используя закрытый ключ подписи вместе с идентификатором ключа - C7FD9DJAA8 и идентификатором команды - 9CKCGNNUQN . Сгенерированные токены будут действительны в течение одного часа и должны обновляться каждые 60 минут. Подробнее об установлении подключения к APN на основе токенов.
Группы приложенийИдентификаторы групп приложений являются универсально уникальными. Это означает, что при повторном подписании пользовательских приложений мы можем использовать только идентификатор группы приложений, связанный с учетной записью разработчика Test Lab . Если ваш тест опирается на группы приложений, ваш тест не будет пройден.
Запустите тест игрового цикла
Запустите команду gcloud beta firebase test ios run
и используйте следующие флаги для настройки запуска:
Флаги для тестов игрового цикла | |
---|---|
--type | Обязательно : Указывает тип теста iOS, который вы хотите запустить. Вы можете ввести типы тестов |
--app | Обязательно : Абсолютный путь (GCS или файловая система) к файлу IPA вашего приложения. Этот флаг действителен только при запуске тестов Game Loop. |
--scenario-numbers | Циклы (также известные как сценарии), которые вы хотите запустить в своем приложении. Вы можете ввести один цикл, список циклов или диапазон циклов. Цикл по умолчанию — 1. Например, |
--device-model | Физическое устройство, на котором вы хотите провести тест (узнайте, какие доступные устройства вы можете использовать). |
--timeout | Максимальная продолжительность, которую вы хотите, чтобы ваш тест запустил. Вы можете ввести целое число, чтобы представить продолжительность в секундах, или целое число и перечисление, чтобы представить продолжительность как более длинную единицу времени. Например:
|
Например, следующая команда запускает тест игрового цикла, который выполняет циклы 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 CLI см. в справочной документации .
Шаг 3 (необязательно) : автоматизируйте будущие тесты, которые вы создаете
Написание команд 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 | Произошла ошибка тестовой инфраструктуры. |
Шаг 4 : Изучите результаты теста
Когда тест начнется, вы получите ссылку на страницу результатов теста . Тесты могут выполняться в течение нескольких минут в зависимости от количества выбранных вами различных конфигураций и установленной для ваших тестов длительности тайм-аута. После запуска тестов вы можете просмотреть результаты тестов. Подробнее об интерпретации результатов тестов см. в разделе Анализ результатов Firebase Test Lab .
Следующий шаг
Ознакомьтесь с документацией Google Cloud SDK, чтобы изучить общедоступные или находящиеся в стадии бета- тестирования варианты тестирования.