Firebase Test Lab позволяет тестировать приложение iOS на нескольких устройствах через интерфейс командной строки gcloud . Продолжайте читать, чтобы узнать, как начать.
Создать проект Firebase
Если у вас нет проекта Firebase для вашего приложения, перейдите в консоль Firebase и нажмите « Создать новый проект», чтобы создать его сейчас. Вам потребуются права владения или редактирования в вашем проекте.
В плане Spark вы можете использовать Test Lab для ограниченного количества ежедневных тестов. Чтобы использовать Test Lab без дневных ограничений квоты, вам необходимо перейти на план Firebase Blaze.
Настройте локальную среду 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.
Создавайте XCTests для своего приложения
Чтобы создать свой тест, используйте следующую команду в терминале:
проект
xcodebuild -project PATH/TO/YOUR_WORKSPACE.xcodeproj \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
Рабочее пространство
xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
После успешной сборки теста заархивируйте его для загрузки в Test Lab:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Проведите свои тесты
Выберите размер теста
Test Lab позволяет запускать тесты на различных версиях iOS, устройствах, ориентациях экрана и регионах. Эти конфигурации известны как размеры теста . Чтобы увидеть параметры для каждого измерения, заменяющие models
, versions
или locales
для dimension
в следующей команде:
gcloud firebase test ios dimension list
Ориентация экрана несколько проще, так как его только варианты portrait
и landscape
.
Просмотрите список параметров теста и выберите несколько комбинаций, на которых вы хотите провести тест. Если вы используете план Spark, вы можете запускать до 5 комбинаций в день. Если вы используете план Blaze, вы можете запускать тесты для неограниченного количества комбинаций в день, но вы можете включать только до 200 комбинаций в каждый запуск. Для получения дополнительной информации об ограничениях тестирования и ценах см. Ценовые планы .
Запустите тесты
После того, как вы выбрали набор параметров тестирования, вы можете запустить тесты 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
Проанализируйте результаты ваших тестов
Когда тест будет завершен, инструмент gcloud распечатает базовую сводку результатов вашего теста. Как часть сводки, инструмент включает ссылку для просмотра более подробных результатов в консоли Firebase. Чтобы узнать больше о том, как интерпретировать эти результаты, см. Анализ результатов теста Firebase .
Автоматизируйте будущие тесты
Создание сценариев команд 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 предоставляет несколько кодов выхода, которые можно использовать для лучшего понимания результатов тестов, запускаемых с использованием сценариев или пакетных файлов.
Коды завершения сценария для Test Lab
Код выхода | Примечания |
---|---|
0 | Все тестовые исполнения пройдены. |
1 | Произошел общий сбой. Возможные причины: несуществующее имя файла или ошибка HTTP / сети. |
2 | Тестирование завершено, поскольку были предоставлены неизвестные команды или аргументы. |
10 | Один или несколько тестовых примеров (проверенные классы или методы классов) в ходе выполнения теста не прошли. |
15 | Лаборатория Firebase Test Lab не смогла определить, прошла или не прошла тестовая матрица из-за непредвиденной ошибки. |
19 | Тестовая матрица была отменена пользователем. |
20 | Произошла ошибка тестовой инфраструктуры. |
Следующий шаг
Прочтите документацию Google Cloud SDK, чтобы изучить варианты тестирования, которые общедоступны или находятся в стадии бета-тестирования .