gcloud 명령줄에서 Firebase Test Lab 시작하기

Firebase Test Lab에서는 gcloud 명령줄 인터페이스를 통해 여러 기기에서 iOS 앱을 테스트할 수 있습니다. 시작하는 방법을 알아보려면 계속 읽으세요.

Firebase 프로젝트 만들기

앱을 위한 Firebase 프로젝트가 없다면 Firebase 콘솔로 이동한 후 새 프로젝트 만들기를 클릭하여 곧바로 프로젝트를 만드세요. 프로젝트의 소유권 또는 수정 권한이 있어야 합니다.

Spark 및 Flame 요금제에서는 Test Lab으로 하루에 테스트를 실행할 수 있는 횟수가 제한됩니다. 일일 할당량 제한 없이 Test Lab을 사용하려면 Firebase Blaze 요금제로 업그레이드해야 합니다.

로컬 Google Cloud SDK 환경 구성

  1. 아직 다운로드하지 않은 경우 gcloud 명령줄 도구를 다운로드합니다. Google Cloud SDK
  2. Cloud SDK 설치가 최신 버전이며 gcloud firebase 명령을 포함하는지 확인합니다.
    gcloud components update
  3. 사용자 인증 정보가 최신 상태인지 확인합니다.
    gcloud auth login
  4. 현재 프로젝트를 gcloud에 설정합니다.
    gcloud config set project PROJECT_ID

앱용 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

화면 방향은 옵션이 portraitlandscape이므로 비교적 단순합니다.

테스트 측정기준의 목록을 살펴본 후 테스트를 실행할 조합을 몇 개 선택합니다. Spark 또는 Flame 요금제를 사용 중인 경우 하루에 최대 5개의 조합을 실행할 수 있습니다. Blaze 요금제를 사용 중인 경우 매일 무제한의 조합으로 테스트를 실행할 수 있습니다. 하지만 각 실행 시 최대 200개의 조합만 포함할 수 있습니다. 테스트 제한 및 가격에 대한 자세한 정보는 요금제를 참조하세요.

테스트 실행

테스트 측정기준 세트를 선택했으면 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 버전과 Test Lab이 사용하는 기본 Xcode 버전 간의 비호환성으로 인해 테스트가 실패할 수 있습니다. 테스트용 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=9.4

테스트 결과 분석

테스트가 완료되면 gcloud 도구에서 기본 테스트 결과 요약을 인쇄합니다. 요약의 일부로, 도구에는 Firebase 콘솔에서 보다 자세한 결과를 볼 수 있는 링크가 포함되어 있습니다. 이러한 결과를 해석하는 방법의 자세한 내용은 Firebase 테스트 결과 분석을 참조하세요.

향후 테스트 자동화

Test Lab으로 gcloud 명령 스크립트화

셸 스크립트 또는 일괄처리 파일을 사용하여 gcloud 명령줄에서 실행할 모바일 앱 테스트 명령을 자동화할 수 있습니다. 이 단순한 bash 스크립트에서는 2분의 제한시간으로 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 테스트 인프라 오류가 발생했습니다.

다음 단계

iOS용 Test Lab 명령줄 SDK 살펴보기: gcloud firebase test ios

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.