貿易聯盟架構概述

本節介紹 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。

帶有 Tradefed 詳細信息的 SL4A

動態@Option 下載

在某些情況下,測試或某些特定操作所需的文件在本地不可用。此功能允許 Tradefed 從遠程位置獲取這些文件,而無需通過 Build Provider。

動態@option下載