클라우드에서 실제 및 가상 Android 기기와 실제 iOS 기기에서 테스트를 실행할 수 있는 개발자 기기 플랫폼 기기 실행에 오신 것을 환영합니다. 이 페이지에서는 Android 및 iOS 테스트 실행 간의 공통점을 설명합니다. 플랫폼별 단계는 Android 기기 실행 및 iOS 기기 실행을 참고하세요.
이 Google Cloud CLI를 사용하려면 Google Cloud 프로젝트 ID를 제공해야 합니다. 명령어 요약은 gcloud beta
device-run를 참고하세요.
다음 플래그는 필수입니다.
- 기기:
--device:--device shiba-35또는--device iphonese3-18-4를 사용하여 기기를 지정합니다. - 테스트:
--test:--test /path/to/test.apk또는--test /path/to/test.ipa를 사용하여 테스트 APK 또는 IPA를 지정합니다.
다음 구성 옵션은 Android 및 iOS 테스트 모두에 공통입니다.
입력 및 출력 Cloud Storage 경로
- 커스텀 Cloud Storage 버킷: 입력 및 출력에 사용할 커스텀 Cloud Storage 버킷을 지정할 수 있습니다.
--bucket-name=my-custom-bucket--bucket-name=플래그를 사용하여 Cloud Storage 버킷을 지정하지 않으면 Google Cloud CLI에서PROJECT_ID-devicerun라는 기본 버킷을 사용합니다. - 입력 파일:
--test,--additional-apps또는--xctestrun-file플래그로 로컬 경로를 지정하면 명령어를 실행할 때마다 Google Cloud CLI가gs://BUCKET_NAME/automation/inputs/DATE_TIME_FOUR_CHARS_SUFFIX/아래의 Cloud Storage 버킷에 자동으로 복사합니다. 여기서BUCKET_NAME는 기본적으로PROJECT_ID-devicerun입니다. - 클라우드 경로: 대용량 파일을 업로드하는 데 시간이 오래 걸릴 수 있으므로 Cloud Storage
gs://경로를 사용하여 직접 참조하면 업로드 시간을 절약할 수 있습니다. - 결과 파일: 출력 아티팩트가
gs://BUCKET_NAME/automation/sessions/session-[SESSION_ID]/아래의 Cloud Storage 버킷에 업로드됩니다.
동기 및 비동기 실행
기본적으로 제출 명령어는 차단 (동기)입니다. 테스트가 완료될 때까지 기다린 후 결과의 요약 표를 출력합니다.
Cloud Storage에 파일을 업로드한 후 세션을 제출하고 즉시 반환하려면 --async 플래그를 추가합니다.
Android
gcloud beta device-run sessions submit instrumentation \
--device shiba-35 \
--test ./ANDROID_TESTS.apk \
--async
iOS
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--test ./IOS_TESTS.zip \
--async
이렇게 하면 세션 ID가 즉시 반환됩니다. 그런 다음 sessions wait 명령어를 사용하여 기다릴 수 있습니다.
gcloud beta device-run sessions wait SESSION_ID
작업이 완료될 때까지 명령어가 차단됩니다.
여러 기기
여러 기기에서 동일한 테스트를 실행하려면 --device 플래그에 쉼표로 구분된 여러 기기 ID를 제공하거나 각각 고유한 기기 ID를 지정하는 여러 --device 플래그를 제공합니다.
Android
gcloud beta device-run sessions submit instrumentation \
--device shiba-34,tokay-36 \
--test ./ANDROID_TESTS.apk
또는
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--device tokay-36 \
--test ./ANDROID_TESTS.apk
iOS
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4,iphonese3-26-3 \
--test ./IOS_TESTS.zip
또는
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--device iphonese3-26-3 \
--test ./IOS_TESTS.zip
테스트 제한시간
테스트 실행 시간을 제한합니다.
Android
gcloud beta device-run sessions submit instrumentation \
--device shiba-35 \
--test ./ANDROID_TESTS.apk \
--instrumentation-timeout=10m
iOS
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--test ./IOS_TESTS.zip \
--xctest-timeout=10m
유효한 범위는 1m~1h이며 기본값은 5m입니다.
소프트웨어 버전
사용 가능한 소프트웨어 패키지 및 AndroidX Test Orchestrator와 Apple Xcode 버전을 검색하고 사용하며, 테스트 실행을 구성하기 전에 수명 주기, 지원되는 버전, 메타데이터를 검사합니다.
먼저 사용 가능한 모든 소프트웨어 패키지와 버전을 나열합니다.
gcloud beta device-run software-versions list
다음과 유사한 출력이 표시됩니다.
ID NAME SOFTWARE_TYPE VERSION STATE IS_DEFAULT
androidx-test-orchestrator-1-4-1 AndroidX Test Orchestrator 1.4.1 ANDROIDX_TEST_ORCHESTRATOR 1.4.1 ACTIVE True
androidx-test-orchestrator-1-6-1 AndroidX Test Orchestrator 1.6.1 ANDROIDX_TEST_ORCHESTRATOR 1.6.1 ACTIVE
xcode-16-4 Xcode 16.4 XCODE 16.4 ACTIVE
xcode-26-2 Xcode 26.2 XCODE 26.2 ACTIVE True
그런 다음 목록에서 정확한 리소스 ID를 사용하여 특정 패키지를 설명합니다.
Android
gcloud beta device-run software-versions describe androidx-test-orchestrator-1-4-1
iOS
gcloud beta device-run software-versions describe xcode-16-4
다음과 유사한 출력이 표시됩니다.
Android
id: androidx-test-orchestrator-1-4-1
isDefault: true
lifecycle:
state: ACTIVE
name: AndroidX Test Orchestrator 1.4.1
softwareType: ANDROIDX_TEST_ORCHESTRATOR
version: 1.4.1
iOS
id: xcode-16-4
lifecycle:
state: ACTIVE
name: Xcode 16.4
softwareType: XCODE
supportedIosVersions:
- '15.0'
- '15.1'
- '15.2'
- '15.4'
- '15.7'
- '16.0'
- '16.1'
- '16.2'
- '16.3'
- '16.5'
- '16.6'
- '18.0'
- '18.3'
- '18.4'
version: '16.4'
이제 사용할 수 있는 소프트웨어 버전을 알았으므로 다음과 같이 --orchestrator-version 또는 --xcode-version 플래그를 사용하여 테스트 실행에서 사용할 수 있습니다.
Android
gcloud beta device-run sessions submit instrumentation \
--device shiba-35 \
--test ./ANDROID_TESTS.apk \
--orchestrator-version=1.4.1
자세한 내용은 오케스트레이터 사용 설정을 참고하세요.
iOS
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--test ./IOS_TESTS.zip \
--xcode-version=16.4
자세한 내용은 iOS용 기기 실행을 참고하세요.
입력 검증
개발자 기기 플랫폼은 아티팩트를 비롯한 입력을 검증하려고 시도하며 잘못된 입력이 발생하면 PASSED 또는 FAILED 대신 ERROR를 반환합니다.
Session [session-94b57778] finished with result [ERROR].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 ERROR
이제 --full를 sessions describe 명령어에 추가하여 세션에 대한 자세한 내용을 확인합니다.
gcloud beta device-run sessions describe --full session-94b57778
그러면 다음과 유사한 출력이 생성됩니다.
name: projects/user-test1/locations/global/sessions/session-94b57778
sessionConfig:
displayName: instrumentation-session
jobConfigs:
- action:
androidInstrumentationTest:
testInstallable:
files:
- gcsInputFile:
path: gs://user-test1-devicerun/automation/inputs/2026-09-16_18:55.17372947_EECF/my-test.apk
allocationConfig:
deviceConfigs:
- actions:
- androidLogcat: {}
requirement:
deviceId: mediumphone-arm-34
displayName: job-000
outputDirectoryConfig:
gcsOutputDirectory:
path: gs://user-test1-devicerun/automation/sessions
sessionReport:
endTime: '2026-09-16T18:55:49.721Z'
id: ed681f23-669b-4464-8a93-b28456e58136
jobReports:
- displayName: job-000
endTime: '2026-09-16T18:55:45.839Z'
executionReports:
- displayName: execution-000
endTime: '2026-09-16T18:55:46.694Z'
id: ce370173-af94-4dd7-acc6-0863e4d2e9ec
result:
cause:
summary:
message: The instrumentation target package does not match any of the
installable packages.
reason: INSTRUMENTATION_TARGET_MISMATCH
type: CUSTOMER
resultType: ERROR
startTime: '1970-01-01T00:00:00Z'
status:
statusType: PENDING
id: 953b5106-3c20-40f0-aceb-18af89cd1b83
result:
cause:
summary:
message: The instrumentation target package does not match any of the installable
packages.
reason: INSTRUMENTATION_TARGET_MISMATCH
type: CUSTOMER
resultType: ERROR
startTime: '2026-09-16T18:55:31.651Z'
status:
statusType: DONE
result:
resultType: ERROR
startTime: '2026-09-16T18:55:24.442Z'
status:
statusType: DONE
다음 단계
개발자 기기 플랫폼으로 Android 테스트 실행 또는 iOS 테스트 실행