本節介紹 Tradefed 的內部結構及其關係。有關詳細信息,請參閱鏈接的子頁面。
1. 測試配置(XML 配置)
概述
Tradefed 中的測試配置以 XML 格式描述。了解配置的結構是運行和定制測試的關鍵。
TF 配置的結構
全局 TF 配置
全局配置是一個特殊的 Tradefed XML 配置,在 Tradefed 啟動時通過TF_GLOBAL_CONFIG
環境變量加載。它加載與將影響整體線束行為的 Tradefed 實例範圍相關的對象。
密鑰庫
Keystore 允許從 keystore 向 Tradefed 注入命令行選項,以避免直接在命令行上引用該值。這可用於通過直接從密鑰庫中檢索密碼來隱藏命令行中的密碼。
2.設備管理器
設備管理器負責跟踪正在運行的 Tradefed 實例上的設備狀態。監控分配狀態和在線狀態等方面。
3.測試命令調度器
Tradefed 中的測試命令調度程序接受命令運行,將它們與設備關聯,並啟動測試調用。
4.構建提供者
Build Provider 是任何測試調用的第一步。它下載設置和運行測試所需的資源(構建映像、測試 APK 等)。它還在將傳遞給測試的BuildInfo
對像中引用它們。本地可用資源也可以在BuildInfo
對像中鏈接。
5. Target Preparer and Cleaner
Target Preparer 提供可選操作,可用於將被測目標配置為特定狀態,例如刷新設備、設置特定屬性和連接到 Wi-Fi。
6. 測試跑者
Tradefed 中的 Test Runner 是指負責實際測試執行的對象。不同的測試運行者以不同的方式驅動測試執行;例如,儀器測試運行程序將與 JUnit 測試運行程序非常不同。
7. 結果報告者
Tradefed 中的 Result Reporter 是指將結果發送到特定目的地的對象。每個實現通常專門針對不同的結果後端。 Result Reporter 負責將 Tradefed 結果格式轉換為目標格式。
這種靈活的設計允許任何測試向任何結果目的地報告,並以隔離的方式輕鬆添加更多測試。
8. 指標收集器
Metrics Collector 是 Tradefed 中的一個特殊對象,與測試執行正交。它允許在測試生命週期的不同點(例如,測試開始、測試結束)收集信息。由於收集器與測試本身分離,因此可以交換、添加和刪除點,而無需更改測試本身。
9. 主機範圍的設置
本節介紹適用於完整 Tradefed 實例運行的設置。這些選項會影響整個線束的行為,以適應不同的環境,例如在受限網絡中。
10. 附加功能
以下部分描述了 Tradefed 而不是 Tradefed 對象的一般用法。
交易分片
當測試語料庫很大或需要很長時間執行時,可以將其拆分到多個設備上。我們將這種拆分稱為分片。本節介紹分片的工作原理和配置方式。
使用 SL4A
Tradefed 支持安卓腳本層,SL4A;這是一個自動化工具集,用於以獨立於平台的方式調用 Android API。
動態@Option 下載
在某些情況下,測試或某些特定操作所需的文件在本地不可用。此功能允許 Tradefed 從遠程位置獲取這些文件,而無需通過 Build Provider。