Google致力於提高黑人社區的種族平等。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

貿易聯合會概述

貿易聯合會(簡稱Tradefed或TF)是一個連續的測試框架,旨在在Android設備上運行測試。例如,Tradefed用於運行兼容性測試套件(CTS)供應商測試套件(VTS)

Trade Federation是一種Java應用程序,可在主機上運行,並通過adb使用ddmlib(DDMS背後的庫)與一個或多個Android設備進行通信。

我們在下面列出了TF的一些主要功能,以及幾個示例用例。就是說,如果您想直接進入並開始使用,可以直接進入“ 從這裡開始”頁面。

特徵

  • 模塊化,靈活,可擴展的設計
  • 內置了對運行許多不同類型的Android測試的支持: Instrumentationuiautomator ,native / gtest,基於主機的JUnit等
  • 在adb之上提供可靠性和恢復機制
  • 支持在多個設備上並行安排和運行測試

有關如何運行現有測試(例如Instrumentation)的最新信息,請參見通過TF測試。

用例

Trade Federation的模塊化特性使它可以直接插入到具有現有構建,測試和報告基礎結構的環境中。我們在下面列出了一些示範用例,在這些用例中,可以使用Tradefed實現高效,可擴展的測試實踐。

首先,考慮“哪些部分是可修改的,哪些部分是靜態的”這一問題來考慮潛在用例的情況很有用。例如,設備OEM可以修改框架,系統和硬件,但對現有應用程序影響很小或沒有影響。另一方面,應用程序開發人員可以修改應用程序,但幾乎無法控制系統或框架的大多數方面。

結果,每個用例中的實體將具有不同的測試目標,並且在發生一組測試失敗的情況下將具有不同的選擇。儘管存在這些差異,貿易聯合會仍可以幫助使其每個測試過程高效,靈活和可擴展。

設備OEM

設備OEM製造硬件,並且通常會調整Android系統和框架以使其在該硬件上良好運行。 OEM可能會努力實現這些目標,同時在硬件和系統級別上保持穩定性和性能,並確保框架更改不會破壞與現有應用程序的兼容性。

OEM可以實施一個設備刷新模塊,該模塊將在生命週期的“目標設置”階段執行。該模塊將在其執行期間完全控制設備,這將使其有可能將設備強制進入引導加載程序,進行刷新,然後強制設備重新引導回到用戶空間模式。結合模塊以結合到連續構建系統中,這將使OEM在更改系統級固件和Java級框架時在其設備上運行測試。

設備完全啟動後,OEM將能夠利用現有的基於JUnit的測試或編寫新測試來驗證所需的功能。最後,他們可以編寫一個或多個結果報告模塊以綁定到現有的測試結果存儲庫中,或直接報告結果(例如, 通過電子郵件 )。

應用程式開發人員

應用程序開發人員構建的應用程序必須能夠在各種平台版本和各種設備上良好運行。如果在特定的平台版本和/或設備上出現問題,則唯一的補救方法是添加替代方法並繼續進行。對於大型開發人員,可以將測試過程合併到一個連續的構建序列中。對於較小的開發人員,它可能會定期或手動啟動。

大多數應用程序開發人員將使用TF中已經存在的apk測試安裝模塊。有一個可以從本地文件系統 安裝的版本,也可以安裝從構建服務下載的apk的版本 。重要的是要注意,後一版本將繼續與在同一主機上運行的任意多個TF實例一起正常工作。

由於TF熟練處理多種設備,因此按用於該測試的設備類型對每個測試結果進行分類將很簡單。因此,TF可能會為應用程序的每個版本生成二維(或多維)兼容性矩陣。

測試服務

例如,測試服務可能允許應用程序開發人員提交應用程序,並在裝有功率測量工具的設備上運行測試,以確定該應用程序的功耗。這與前兩個用例的不同之處在於,服務生成器不控制正在運行的設備或應用程序。

因為Trade Federation可以運行實現簡單IRemoteTest接口的任何Java類,所以編寫驅動程序可以使某些外部硬件與設備上正在運行的測試用例協調起來是微不足道的。驅動程序本身可以生成線程,將請求發送到其他服務器,或者執行它可能需要執行的其他任何操作。此外,結果報告接口ITestInvocationListener的簡單性和多功能性意味著,將任意測試結果(例如,包括數值功效指標)表示為標準結果報告管道也同樣非常簡單。