貿易聯盟概述

Trade Federation(簡稱 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 可以修改框架、系統和硬件,但對現有應用程式影響很小或沒有影響。另一方面,應用程式開發人員可以修改應用程序,但對系統或框架的大多數方面幾乎沒有控制權。

因此,每個用例中的實體將有不同的測試目標,並且在一組測試失敗的情況下將有不同的選項。儘管存在這些差異,Trade Federation 仍可以幫助其每個測試流程變得有效率、靈活且可擴展。

設備代工

設備 OEM 建立硬件,並經常調整 Android 系統和框架,以便在該硬體上運作良好。 OEM 可能會努力實現這些目標,同時保持硬體和系統層級的穩定性和效能,並確保框架變更不會破壞與現有應用程式的相容性。

OEM 可以實現一個設備刷新模組,該模組將在生命週期的目標設定階段執行。該模組將在其執行期間完全控制設備,這將允許它潛在地強制設備進入引導程式、閃存,然後強制設備重新啟動回到用戶空間模式。與連接到持續建置系統的模組相結合,這將允許 OEM 在更改系統級韌體和 Java 級框架時在其設備上執行測試。

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

應用程式開發者

應用程式開發人員建立的應用程式需要在各種平台版本和各種裝置上運作良好。如果特定平台版本和/或裝置上出現問題,唯一的補救措施是添加解決方法並繼續。對於較大的開發人員,測試過程可能會合併到連續的建置序列中。對於較小的開發人員,它可能會定期或手動啟動。

大多數應用程式開發人員會使用 TF 中已有的 apk 測試安裝模組。有一個從本機檔案系統安裝的版本,以及一個可以安裝從建置服務下載的 APK 的版本。值得注意的是,後一個版本將繼續在同一台主機上執行任意多個 TF 實例時正常運作。

由於 TF 擅長處理多個設備,因此可以簡單地根據用於該測試的設備類型對每個測試結果進行分類。因此,TF 可能會為應用程式的每個建置產生一個二維(或多維)相容性矩陣。

檢測服務

例如,測試服務可能允許應用程式開發人員提交應用程式並在配備電源測量工具的裝置上執行測試,以確定應用程式的功耗。這與前兩個用例的不同之處在於服務建構器不控制正在運行的設備或應用程式。

由於 Trade Federation 可以運行任何實作簡單IRemoteTest介面的 Java 類,因此編寫可以協調某些外部硬體與裝置上執行的測試案例的驅動程式非常簡單。驅動程式本身可以產生線程,向其他伺服器發送請求,或執行它可能需要的任何其他操作。此外,結果報告介面ITestInvocationListener的簡單性和多功能性意味著將任意測試結果(包括例如數位功效指標)表示到標準結果報告管道中同樣簡單。