Tradefed 架構

本節說明 Tradefed 的內部結構及其關係。詳情請參閱連結的子頁面。

測試設定

Tradefed 中的測試設定是以 XML 格式說明。瞭解設定結構是執行及自訂測試的關鍵。

TF 設定的結構

全域 TF 設定

全域設定檔是特殊的 Tradefed XML 設定,當 Tradefed 透過 TF_GLOBAL_CONFIG 環境變數啟動時,系統會載入該設定檔。這會載入與 Tradefed 執行個體範圍相關的物件,進而影響整體 Harness 行為。

全域設定詳細資料

KeyStore

Keystore 可將來自金鑰儲存區的指令列選項注入 Tradefed,避免直接在指令列上參照值。這項功能可直接從金鑰庫擷取密碼,藉此在指令列中隱藏密碼。

金鑰庫詳細資料

裝置管理員

裝置管理員負責追蹤 Tradefed 執行個體上裝置的狀態。系統會監控分配狀態和上線狀態等層面。

測試指令排程器

Tradefed 中的測試指令排程器會接收要執行的指令、將指令與裝置建立關聯,並啟動測試調用。

建立提供者

建構供應器是任何測試調用的第一步。並下載設定及執行測試所需的資源 (建構映像檔、測試 APK 等)。此外,它也會在要傳遞至測試的 BuildInfo 物件中參照這些項目。您也可以在 BuildInfo 物件中連結本機可用的資源。

目標準備人員和清潔人員

目標準備工具提供選用動作,可將受測目標設定為特定狀態,例如刷寫裝置、設定特定屬性,以及連上 Wi-Fi。

測試執行器

Tradefed 中的測試執行器是指負責實際執行測試的物件。不同的測試執行器會以不同的方式執行測試;舉例來說,檢測設備測試執行器與 JUnit 測試執行器就大不相同。

結果回報者

Tradefed 中的結果回報器是指將結果傳送至特定目的地的物件。每項實作通常專為不同的結果後端而設計。結果回報器則負責將 Tradefed 結果格式轉換為目標格式。

這種彈性設計可讓任何測試向任何結果目的地回報,並輕鬆以獨立方式新增更多測試。

指標收集器

指標收集器是 Tradefed 中的特殊物件,與測試執行正交。您可以在測試生命週期的不同時間點 (例如測試開始和結束時) 收集資訊。由於收集器與測試本身分離,因此可以交換、新增及移除點,不必變更測試本身。

全主機層級設定

本節說明適用於完整 Tradefed 執行個體的設定。這些選項會影響整個安全帶的行為,以便適應不同環境,例如受限的網路。

其他功能

以下各節說明 Tradefed 的一般用法,而非 Tradefed 物件。

Tradefed 分片

如果測試語料庫很大或執行時間很長,可以將測試語料庫分散到多部裝置上。我們將這種分割方式稱為「分片」。本節說明分片運作方式和設定方式。

分片詳細資料

使用 SL4A

Tradefed 支援 Android 的指令碼層 SL4A,這是一套自動化工具,可獨立於平台呼叫 Android API。

SL4A with Tradefed 詳細資料

動態 @option 下載

在某些情況下,測試或特定作業所需的檔案無法在本機使用。這項功能可讓 Tradefed 從遠端位置取得這些檔案,不必透過建構供應商。

動態 @option 下載