開發人員裝置平台裝置執行

本指南說明如何使用 gcloud beta device-run CLI 執行 Android 檢測設備測試,並在 Google Cloud 控制台中查看結果。本文假設您已有 Google Cloud 帳戶和專案。

如要使用這個 Google Cloud CLI,您必須提供 Google Cloud 專案 ID。

事前準備

這些步驟假設您已建立 Google Cloud 專案、完成「開發人員裝置平台快速入門」指南中的設定步驟,並在終端機中透過 gcloud 進行驗證。

此外,您也需要準備好要執行的 Android 檢測設備測試。 如需相關指引,請參閱「建構插樁測試」。

此外,您應該已識別要執行工作負載的裝置 ID。如需操作說明,請參閱「裝置目錄」。

執行測試

現在您已知道可用於測試應用程式的裝置 ID,可以透過 gcloud beta device-run sessions submit instrumentation 指令和 --device 標記指定裝置,執行插樁測試。

如要執行測試,請發出類似下列的指令,但要使用您自己的裝置 ID 和測試路徑:

gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--apps /path/to/app.apk \
--test /path/to/test.apk

工作結果報告資料夾位於 Cloud Storage 路徑,例如 gs://<your_project_id>/automation/sessions/session-id/。查看連結的測試輸出內容,類似於: https://console.cloud.google.com/storage/browser/your_project_id/automation/sessions/session-id/

設定測試執行

執行測試後,請瞭解一些設定選項:

  • 如要在多部裝置上執行相同測試,請多次提供 --device 標記,例如 --device shiba-34 --device tokay-36
  • 您可以使用 --apps=path1,path2,...,path_n 標記,視需要指定要在執行測試前安裝的一或多個 APK。系統會按照您指定的順序安裝這些應用程式。
  • 您必須使用 --test 標記指定測試 APK。
  • 使用 --apps--test 旗標指定本機路徑時,每次執行指令,Google Cloud CLI CLI 都會自動將該路徑複製到 Cloud Storage 儲存空間的 gs://my-project-id/automation/inputs/date_time_four_chars_suffix/ 下。
  • 上傳大型 APK 可能需要一段時間,因此您可以直接使用 APK 的 Cloud Storage gs:// 路徑參照 APK,節省上傳時間。

根據預設,sessions submit instrumentation 指令會封鎖工作階段結果,也就是等待測試執行完畢,並輸出類似下列內容的結果:

Using the default Cloud Storage bucket [gs://<my-project-id>] for input and result files. Will create the bucket if it does not exist.
Uploading [app.apk].
Uploading [test.apk].

Initiated long-running operation [operation-number] to create session.
Creating session [session-id] in location [global].
Result files will be stored at [https://console.cloud.google.com/storage/browser/<my-project-id>/automation/sessions/session-id/].
Waiting for session [session-id] to complete....done.

Session [session-id] finished with result [FAILED].
JOB NAME  EXECUTION NAME  EXECUTION RESULT
job-000   all             FAILED: 2 test cases failed, 5 passed

如要非同步執行指令,請加入 --async 旗標。這樣一來,指令就能在將檔案上傳至 Cloud Storage 並列印作業 ID 和工作階段 ID 後立即結束。您可以使用作業等待指令和作業 ID 等待執行作業。這項作業會遭到封鎖,直到工作完成為止:

gcloud beta device-run operations wait your_operation_id

使用分片

如要在持續整合和持續推送軟體更新 (CI/CD) 工作流程中納入開發人員裝置平台,請考慮將測試分片。測試分片會將一組測試分成多個子群組 (分片),並在隔離環境中分別執行。開發人員裝置平台會使用多部裝置,自動平行執行每個分片,並在較短時間內完成整組測試。

分片選項

如果作業只有少量測試案例,或所有測試案例的總執行時間不長,則不必使用分片。如果您有大量測試案例,或所有測試案例的總執行時間很長,建議使用分片。

開發人員裝置平台支援智慧和統一分片。決定如何將測試分片時,請考慮下列選項:

  • 如果所有測試案例所需時間相近,請使用統一分片,將所有測試案例分成 n 片。

  • 如果不同測試案例的執行時間差異很大,請使用智慧分片。開發人員裝置平台會使用歷來測試執行時間建立不同的分片,並嘗試在類似的時間內完成所有分片。

統一分片

如要使用一致分片將測試分片,請在 sessions submit instrumentation 指令中加入 --sharding-option=uniform--uniform-sharding-count= 標記,如下所示:

gcloud beta device-run sessions submit instrumentation \
    --test path/to/test.apk \
    --device shiba-34 \
    --device tokay-36 \
    --sharding-option=uniform \
    --uniform-sharding-count=2

您應該會看到指出 Job status: 2 running 的輸出內容。這項服務會為每部裝置建立一個工作,由於這兩項工作的輸入內容相同,因此服務會集中驗證,只執行一次。

完成後,指令的最終輸出內容會分別列出這兩項工作:

JOB NAME  EXECUTION NAME  EXECUTION RESULT
job-000   execution-000   PASSED
job-001   execution-000   PASSED

智慧分片

如要使用智慧分片功能將測試分片,請在 sessions submit instrumentation 指令中加入 --sharding-option=smart--smart-sharding-max-shard-count=--smart-sharding-target-duration= (以分鐘或 1 小時為單位) 和 --smart-sharding-record-name= 旗標,如下所示:

gcloud beta device-run sessions submit instrumentation \
    --test path/to/test.apk \
    --device shiba-34 \
    --device shiba-35 \
    --device tokay-36 \
    --sharding-option=smart \
    --smart-sharding-max-shard-count=3 \
    --smart-sharding-target-duration=5m \
    --smart-sharding-record-name=test.yaml

您應該會看到最終輸出內容,指出已執行三項工作:

Session [session-3cd0564a] finished with result [ERROR].
JOB NAME  EXECUTION NAME  EXECUTION RESULT
job-000   execution-000   PASSED
job-001   execution-000   PASSED
job-002   execution-000   PASSED

以下摘要說明這裡使用的智慧分片旗標:

  • --smart-sharding-max-shard-count=SMART_SHARDING_MAX_SHARD_COUNT:指定智慧分片要建立的分片數量上限。如果未設定或設為 0,系統會使用系統定義的上限。實體裝置的有效範圍為 0 至 20,虛擬裝置則為 0 至 200。--smart-sharding-max-shard-count:指定要建立的分片數量上限。--device 標記中指定的裝置數量必須小於或等於這個值。

  • --smart-sharding-target-duration=SMART_SHARDING_TARGET_DURATION - Specify the targeted execution time (e.g., 2m, 10m, 1h) per shard for smart sharding. 有效範圍為 2 分鐘至 1 小時。如果 --sharding-option=smart,則為必要屬性。

  • --smart-sharding-record-name=SMART_SHARDING_RECORD_NAME:指定智慧分片記錄檔的名稱,不含副檔名。當 --sharding-option=smart 時為必填。這個 YAML 檔案位於 smart-sharding/ 目錄下,由 --bucket-name 指定的 Google CloudStorage bucket 中。如果檔案不存在,系統會自動建立;否則,檔案內容會在工作階段完成時更新。

探索及管理測試執行

無論是 sessions submit instrumentation 指令的非同步或同步模式,您都可以在執行期間使用 sessions describe 指令查詢工作狀態,或在工作完成後取得結果:

gcloud beta device-run sessions describe <session_id>

輸出內容會匯總測試結果,並連結至 Google Cloud 控制台中的結果。 例如:

Session [session-id] finished with result [FAILED].
Result files are stored at [https://console.cloud.google.com/storage/browser/your_project_id-devicerun/automation/sessions/session-id/].
JOB NAME  EXECUTION NAME  EXECUTION RESULT
job-000   all             FAILED: 2 test cases failed, 5 passed

使用下列指令列出所有正在執行和已完成的工作階段:

gcloud beta device-run sessions list

您會收到輸出內容,其中包含專案中的工作階段清單,類似於:

SESSION_ID                                    START_TIME                STATE
session-4825e153                              2026-07-28T16:38:43.155Z  DONE
session-813ca602                              2026-07-28T22:40:32.415Z  DONE

如要取消執行中的工作階段,請使用工作階段 ID 執行下列指令:

gcloud beta device-run sessions cancel your_session_id

後續步驟

接下來,請尋找及分析記錄