Tradefed 架構

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

測試設定

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

TF 設定的結構

全域 TF 設定

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

全域設定詳細資料

金鑰庫

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

金鑰庫詳細資料

裝置管理員

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

測試指令排程器

Tradefed 中的測試指令排程器會接收要執行的指令,將指令與裝置建立關聯,然後啟動測試呼叫。

建立供應商

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

目標準備人員和清潔人員

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

測試執行器

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

結果回報者

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

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

指標收集器

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

全主機層級設定

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

其他功能

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

Tradefed sharding

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

分片詳細資料

使用 SL4A

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

SL4A with Tradefed 詳細資料

動態 @option 下載

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

動態 @option 下載