Developer Device Platform Device Run へようこそ。このサービスでは、クラウド内の物理 Android デバイス、仮想 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:--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
コマンドは、ジョブが完了するまでブロックされます。
複数のデバイス
複数のデバイスで同じテストを実行するには、カンマで区切られた複数のデバイス ID を指定した --device フラグを指定するか、それぞれ異なるデバイス 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
詳細については、Orchestrator を有効にするをご覧ください。
iOS
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--test ./IOS_TESTS.zip \
--xcode-version=16.4
詳しくは、iOS 向けデバイスランをご覧ください。
入力の検証
Developer Device Platform は、アーティファクトなどの入力を検証しようとします。エラーのある入力が検出された場合は、PASSED や FAILED ではなく ERROR を返します。
Session [session-94b57778] finished with result [ERROR].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 ERROR
次に、sessions describe コマンドに --full を追加して、セッションの詳細を表示します。
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
次のステップ
Developer Device Platform で Android テストを実行するか、iOS テストを実行する。