이 가이드에서는 gcloud CLI를 사용하여 XCTest 또는 Game Loop 테스트를 실행하는 방법을 설명합니다.
1단계 : 로컬 Google Cloud SDK 환경 구성
- Google 클라우드 SDK를 다운로드합니다.
- 설치가 최신 상태이고
gcloud firebase
명령어gcloud components update
이 포함되어 있는지 확인하세요. - Google 계정
gcloud auth login
를 사용하여 gcloud CLI에 로그인합니다. - gcloud에서 Firebase 프로젝트를 설정합니다. 여기서 PROJECT_ID 는 Firebase 프로젝트의 ID입니다.
gcloud config set project PROJECT_ID
여기에는 gcloud CLI 도구가 포함됩니다.
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 버전, 기기, 화면 방향 및 로케일에서 테스트를 실행할 수 있습니다. 이러한 구성을 테스트의 테스트 차원 이라고 합니다. 각 차원(예: 기기의 iOS 버전에 대해 지원되는 Xcode 버전)에 대한 옵션을 보려면 다음 명령에서
dimension
을models
,versions
또는locales
로 대체하십시오.gcloud firebase test ios dimension list
유일한 옵션은
portrait
및landscape
이므로 화면 방향은 다소 간단합니다.테스트 측정기준 목록을 살펴보고 테스트를 실행할 몇 가지 조합을 선택합니다. 요금제 를 방문하여 하루에 실행할 수 있는 최대 조합 수를 확인하십시오.
일련의 테스트 측정기준을 선택하면
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 테스트 유형을 지정합니다. 테스트 유형 |
--app | 필수 : 앱의 IPA 파일에 대한 절대 경로(GCS 또는 파일 시스템)입니다. 이 플래그는 게임 루프 테스트를 실행할 때만 유효합니다. |
--scenario-numbers | 앱에서 실행하려는 루프(일명 시나리오). 하나의 루프, 목록 또는 루프 또는 루프 범위를 입력할 수 있습니다. 기본 루프는 1입니다. 예를 들어 |
--device-model | 테스트를 실행하려는 물리적 장치( 사용할 수 있는 장치 찾기). |
--timeout | 테스트를 실행할 최대 기간입니다. 기간을 초 단위로 나타내기 위해 정수를 입력하거나 더 긴 시간 단위로 기간을 나타내기 위해 정수와 열거형을 입력할 수 있습니다. 예를 들어:
|
예를 들어 다음 명령은 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 문서를 읽어보세요.