Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

gcloud CLI로 테스트

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 가이드에서는 gcloud CLI를 사용하여 XCTest 또는 Game Loop 테스트를 실행하는 방법을 설명합니다.

1단계 : 로컬 Google Cloud SDK 환경 구성

  1. Google Cloud SDK를 다운로드합니다.
  2. 여기에는 gcloud CLI 도구가 포함됩니다.

  3. 설치가 최신 상태이고 gcloud firebase 명령어가 포함되어 있는지 확인하세요.
          gcloud components update
  4. Google 계정을 사용하여 gcloud CLI에 로그인합니다.
          gcloud auth login
  5. gcloud에서 Firebase 프로젝트를 설정합니다. 여기서 PROJECT_ID 는 Firebase 프로젝트의 ID입니다.
         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 버전, 기기, 화면 방향 및 언어에서 테스트를 실행할 수 있습니다. 이러한 구성을 테스트의 테스트 치수 라고 합니다. 각 차원에 대한 옵션(예: 장치의 iOS 버전에 대해 지원되는 Xcode 버전)을 보려면 다음 명령에서 dimension 에 대해 models , versions 또는 locales 을 대체하십시오.

    gcloud firebase test ios dimension list

    화면 방향은 portraitlandscape 옵션만 있으므로 다소 간단합니다.

    테스트 측정기준 목록을 살펴보고 테스트를 실행할 몇 가지 조합을 선택합니다. 하루에 실행할 수 있는 최대 조합 수를 보려면 요금제 를 방문하세요.

  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 버전과 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=11.3

특별 권한 테스트

명시적 앱 ID가 필요한 자격을 테스트하려면 --test-special-entitlements 플래그를 설정하면 됩니다. Test Lab은 특별 자격을 지원하기 위해 새로운 번들 식별자로 애플리케이션에 다시 서명하므로 앱의 번들 ID에 대한 직접 참조를 포함하는 리소스가 zip 파일에 없는지 확인하십시오.

푸시 알림

푸시 알림 요청을 승인하기 위해 사용자는 키 ID - C7FD9DJAA8 및 팀 ID - 9CKCGNNUQN 과 함께 개인 서명 키 를 사용하여 JSON 웹 토큰을 생성할 수 있습니다. 생성된 토큰은 1시간 동안 유효하며 60분마다 새로 고쳐야 합니다. APN에 대한 토큰 기반 연결 설정에 대해 자세히 알아보십시오.

앱 그룹

앱 그룹 ID는 보편적으로 고유합니다. 즉, 사용자 앱에 다시 서명할 때 Test Lab 개발자 계정과 연결된 앱 그룹 ID만 사용할 수 있습니다. 테스트가 앱 그룹에 의존하는 경우 테스트가 실패합니다.

게임 루프 테스트 실행

gcloud beta firebase test ios run 명령어를 실행하고 다음 플래그를 사용하여 실행을 구성합니다.

게임 루프 테스트용 플래그
--type

필수 : 실행할 iOS 테스트 유형을 지정합니다. 테스트 유형 xctest (기본값) 또는 game-loop 를 입력할 수 있습니다.

--app

필수 : 앱의 IPA 파일에 대한 절대 경로(GCS 또는 파일 시스템)입니다. 이 플래그는 게임 루프 테스트를 실행할 때만 유효합니다.

--scenario-numbers

앱에서 실행하려는 루프(시나리오라고도 함). 하나의 루프, 목록 또는 루프 또는 루프 범위를 입력할 수 있습니다. 기본 루프는 1입니다.

예를 들어 --scenario-numbers=1-3,5 는 루프 1, 2, 3, 5를 실행합니다.

--device-model

테스트를 실행할 물리적 장치( 사용 가능한 장치 확인).

--timeout

테스트를 실행하려는 최대 기간입니다. 지속 시간을 초 단위로 나타내기 위해 정수를 입력하거나 더 긴 시간 단위로 지속 시간을 나타내기 위해 정수 및 열거를 입력할 수 있습니다.

예를 들어:

  • --timeout=200 은 테스트가 최대 200초까지 실행될 때 강제로 종료됩니다.
  • --timeout=1h 는 테스트가 최대 1시간까지 실행될 때 강제로 종료됩니다.

예를 들어 다음 명령은 iPhone 8 Plus에서 루프 1, 4, 6, 7 및 8을 실행하는 게임 루프 테스트를 실행합니다.

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에 대한 자세한 내용은 참조 문서 를 참조하세요.

4단계(선택 사항) : 빌드하는 향후 테스트 자동화

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은 스크립트 또는 배치 파일을 사용하여 실행하는 테스트의 결과를 더 잘 이해하는 데 사용할 수 있는 몇 가지 종료 코드를 제공합니다.

종료 코드 메모
0 모든 테스트 실행이 통과되었습니다.
1 일반적인 오류가 발생했습니다. 가능한 원인은 존재하지 않는 파일 이름 또는 HTTP/네트워크 오류입니다.
2 알 수 없는 명령이나 인수가 제공되어 테스트가 종료되었습니다.
10 테스트 실행 내에서 하나 이상의 테스트 케이스(테스트된 클래스 또는 클래스 메서드)가 통과하지 못했습니다.
15 Firebase Test Lab은 예기치 않은 오류로 인해 테스트 매트릭스의 통과 또는 실패 여부를 확인할 수 없습니다.
19 사용자가 테스트 매트릭스를 취소했습니다.
20 테스트 인프라 오류가 발생했습니다.

5단계 : 테스트 결과 조사

테스트가 시작되면 테스트 결과 페이지에 대한 링크를 받게 됩니다. 선택한 다른 구성의 수와 테스트에 대해 설정된 테스트 제한 시간에 따라 테스트를 실행하는 데 몇 분이 걸릴 수 있습니다. 테스트가 실행된 후 테스트 결과를 검토할 수 있습니다. 테스트 결과를 해석하는 방법에 대한 자세한 내용은 Firebase Test Lab 결과 분석 을 참조하세요.

다음 단계

Google Cloud SDK 문서를 읽고 일반적으로 사용 가능 하거나 베타 버전 인 테스트 옵션을 살펴보세요.