OmniLab ATS 中的雲端自動化調度管理

Cloud Orchestration 應用程式提供高效能的擴充方式,可管理 Cuttlefish 執行個體,特別是 ARM 架構的虛擬裝置 (CHD)。OmniLab ATS 支援 Cloud Orchestration,因此您可以在虛擬裝置上執行測試。開始使用虛擬裝置前,請按照 OmniLab Android 測試站的說明安裝 OmniLab ATS。

總覽

透過 Cloud Orchestration,OmniLab ATS 可將 Cuttlefish 執行個體的管理作業委派給專屬的 Cloud Orchestrator 服務。相較於現有的本機和遠端模式,這種做法有許多優點,同時保留了熟悉的使用者體驗:

  • 平行啟動執行個體:允許同時啟動多個 Cuttlefish 執行個體,大幅減少測試開始前的額外負荷時間。
  • 擴充性:適用於大規模測試環境。
  • 資源隔離:將測試執行環境 (ATS 工作人員) 與裝置模擬環境分離。

必要條件

  • 能夠執行 Docker 的主體機器
  • 存取 Cuttlefish 協調 Docker 映像檔

設定 Cloud Orchestrator 服務

Cloud Orchestrator 服務會管理 Cuttlefish 執行個體的生命週期。這項服務可部署在各種環境中,並支援 x86 和 ARM 架構:

  • 與 ATS 工作站相同的主機:在同一部電腦上的 Docker 容器中執行
  • 獨立機器:在可執行 Docker 的地端伺服器上執行
  • 雲端執行個體:在雲端環境的虛擬機器上執行,例如 Google Compute Engine

安裝及設定服務

按照 Cloud Android Orchestration README 啟動服務。

驗證和權限

如果 Cloud Orchestrator 服務是在遠端機器上執行,請確保 ATS 工作站主機具備透過 HTTP 要求存取該服務的必要權限。如果不允許 HTTP 連線,您可能需要設定 SSH 連接埠轉送。詳情請參閱「試用雲端協調器」。

預期狀態

Cloud Orchestrator 服務啟動成功後,應該就能透過 HTTP 連線。您可以查詢 API 來驗證狀態:

  • Ping 服務:您應該可以從 OmniLab ATS 工作人員主機連上服務端點。舉例來說,執行 curl -I http://localhost:8080/v1/zones/local/hosts 應會傳回成功的 HTTP 回應 (HTTP/1.1 200 OK302 Found 重新導向至 /username),確認服務已啟用且可連線。

設定 OmniLab ATS for Cloud Orchestration

開始使用 OmniLab ATS 前,請務必停止 OmniLab ATS 工作站主機上的所有 Cuttlefish 執行個體。OmniLab ATS 會在測試週期自動啟動及停止虛擬裝置,現有的 Cuttlefish 執行個體會與 OmniLab ATS 管理的執行個體發生衝突。如要瞭解如何停止 Cuttlefish 執行個體,請參閱「停止 Cuttlefish」一文。

如要在 OmniLab ATS 中啟用 Cloud Orchestration,請在啟動 OmniLab ATS 時傳遞特定旗標:

mtt start --use_cloud_orchestrator \
  --cloud_orchestrator_service_url=http://HOST:PORT \
  --max_local_virtual_devices N \
  --use_host_network
  • --use_cloud_orchestrator:啟用 Cloud Orchestration 功能。
  • --cloud_orchestrator_service_url:指定 Cloud Orchestrator 服務監聽的網址,例如 http://localhost:8080
  • --max_local_virtual_devices:設定 OmniLab ATS 可同時分配的虛擬裝置數量上限。預設值為 0。
  • --use_host_network:為容器使用主機的網路命名空間。 這是存取 Cloud Orchestrator 服務的必要條件。

使用雲端協調裝置執行測試

本節說明在雲端協調式虛擬裝置上執行測試的步驟。

特定裝置

在裝置清單中,OmniLab ATS 會將雲端協調的虛擬裝置顯示為預留位置,而非實際序號。預留位置會以 HOSTNAME:PORT 格式顯示 (例如 thehostname:6520)。狀態為「可用」或「已分配」。「Available」狀態中的預留位置表示虛擬裝置未執行,可分配給測試。

選取「雲端協調裝置」

圖 1. 選取雲端協調式虛擬裝置。

新增裝置動作

在這些裝置上排定測試時間後,ATS 會自動新增必要的裝置動作,以便在測試週期內佈建及管理 Cuttlefish 執行個體。

自動裝置動作

圖 2. 自動執行裝置動作。

設定測試資源

排定測試時間時,您必須提供必要的測試資源。在「設定測試資源」部分,請務必將上傳的檔案對應至正確的資源名稱:

  • 將主機工具套件 (例如 cvd-host_package.tar.gz) 對應至名稱 cvd_host_package
  • 將裝置圖片 ZIP 檔案對應至 cvd_device_image 名稱。

雲端自動化調度管理測試資源

圖 3. 對應測試資源。

查看測試執行作業和記錄

測試完成後,您可以在輸出檔案部分查看記錄。 為 Cloud Orchestrator 管理的執行個體收集的特定記錄包括:

  • launcher.log:Cuttlefish 啟動器的記錄
  • kernel.log:標準 Android 核心記錄