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

gcloud CLI로 테스트

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

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

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

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

  3. 설치가 최신 상태이고 gcloud firebase 명령어
          gcloud components update
    이 포함되어 있는지 확인하세요.
  4. Google 계정
          gcloud auth login
    를 사용하여 gcloud CLI에 로그인합니다.
  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 버전)에 대한 옵션을 보려면 다음 명령에서 dimensionmodels , versions 또는 locales 로 대체하십시오.

    gcloud firebase test ios dimension list

    유일한 옵션은 portraitlandscape 이므로 화면 방향은 다소 간단합니다.

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

  3. 일련의 테스트 측정기준을 선택하면 firebase test ios run 명령어를 사용하여 Test Lab에서 테스트를 실행하도록 할 수 있습니다. 테스트하려는 테스트 차원의 각 조합에 대해 별도의 --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은 특별한 권한을 지원하기 위해 새 번들 식별자로 애플리케이션에 다시 서명하므로 zip 파일에 앱의 번들 ID에 대한 직접적인 참조가 포함된 리소스가 없는지 확인하세요.

푸시 알림

푸시 알림 요청을 승인하기 위해 사용자는 키 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 문서를 읽어보세요.