이 가이드에서는 gcloud CLI를 사용하여 XCTest 또는 게임 루프 테스트를 실행하는 방법을 설명합니다.
1단계: 로컬 Google Cloud SDK 환경 구성
- Google Cloud SDK를 다운로드합니다.
- 설치가 최신 상태이며
gcloud firebase
명령어를 포함하는지 확인합니다.gcloud components update
- Google 계정을 사용하여 gcloud CLI에 로그인합니다.
gcloud auth login
- 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=15
Firebase Console에서 테스트 매트릭스를 식별하고 찾는 데 도움이 되도록 다음 예시와 같이
--client-details matrixLabel="<label>"
플래그를 사용하여 필요에 따라 테스트 매트릭스에 라벨을 지정할 수 있습니다.gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --client-details matrixLabel="my label"
특별한 사용 권한 테스트
명시적인 앱 ID가 필요한 사용 권한을 테스트하려면 --test-special-entitlements
플래그를 설정하면 됩니다. Test Lab에서 특별한 사용 권한을 지원하기 위해 새로운 번들 식별자로 애플리케이션을 다시 서명하므로 ZIP 파일에 앱의 번들 식별자에 대한 직접 참조를 포함하는 리소스가 없는지 확인하세요.
- 푸시 알림
apns-environment
- 개인 VPN
com.apple.developer.networking.vpn.api
푸시 알림 요청을 승인하기 위해 사용자는 비공개 서명 키, 키 ID C7FD9DJAA8, 팀 ID 9CKCGNUNUQN을 사용하여 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에 대한 자세한 내용은 참조 문서를 확인하세요.
3단계(선택사항): 향후 빌드할 테스트 자동화
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 | 테스트 인프라 오류가 발생했습니다. |
4단계: 테스트 결과 조사
테스트가 시작되면 테스트 결과 페이지 링크가 전송됩니다. 선택한 구성의 가짓수 및 테스트에 설정한 제한 시간에 따라 테스트 완료까지 몇 분 정도 걸릴 수 있습니다. 테스트가 완료된 후 테스트 결과를 검토할 수 있습니다. 테스트 결과를 해석하는 방법은 Firebase Test Lab 결과 분석을 참조하세요.
다음 단계
Google Cloud SDK 문서를 읽고 정식 버전 또는 베타로 제공되는 테스트 옵션을 살펴보세요.