如果測試語料庫較大或執行時間過長 將測試分割在多部裝置上:資料分割。
資料分割有必要條件 ,以便測試執行工具支援資料分割。
大多數的主要測試執行器均已支援資料分割,因此沒有額外的 執行不同工作上述元件現已支援資料分割,包括檢測設備測試、 主機端驅動測試
交易平台支援兩種資料分割類型:本地和分散式。 這些範例都有一些相似之處,因此本頁面將說明 然後具體細節
常見屬性
這兩種資料分割都會假設測試執行器具有相同的屬性:資料分割 都屬於「獨立」且「確定」。兩個資料分割的第一步是 建立完整的測試清單,然後分割成 不同的群組/資料分割
資料分割表單的主要差異在於執行測試的方式。 詳情請參閱以下各節。
本機資料分割
「本機資料分割」是指執行資料分割的所有裝置 都會連線至相同的實體主機。
執行
本機資料分割會充分運用所有連上相同網路的裝置 方法是建立一組需要執行的測試集區,並且讓每個 免費期間 (也就是前一次測試結束) 的裝置輪詢測試。 這樣才能達到最佳裝置使用率。我們也稱之為 動態資料分割。
選項
--shard-count XX
分散式資料分割
「分散式資料分割」是指與執行 分割叫用可以在任何地方運作,也可以連結至不同的實體 主機。
執行
建構測試清單和 每個資料分割都只會執行目前要求的資料分割。所有 分散式資料分割會先建構相同的清單,然後共同執行 而這會導致所有測試正在執行。
此表單的主要屬性是資料分割,完全不知道 且可能會獨立失敗
主要缺點是資料分割長度不一定是平衡 因為我們無法預先預測每個資料分割中每項測試的執行階段。 發行版本的測試案例數量大致相同 每個資料分割中的值
選項
--shard-count XX --shard-index XX
權杖資料分割
權杖資料分割只能搭配本機資料分割使用。旗標是 無法在非本機資料分割使用案例中運作。有時只有一部裝置 涉及資料分割的特殊資源,例如 SIM 卡等 資訊卡有些測試可能只會在提供特殊資源且可供使用時,才執行 否則就會失敗
權杖資料分割是這個用途的解決方案。測試模組
在 AndroidTest.xml
中宣告需要哪些特殊資源;以及
交易完成後,測試會將測試轉送至有資源的裝置。
XML 設定
<option name="config-descriptor:metadata" key="token" value="SIM_CARD" />
符記的 value
與 Tradefed 的
TokenProperty
且會在
TokenProviderHelper
。
這樣一來,測試模組就能能在具有適當功能的裝置上運作 然後執行測試
如果沒有裝置可以執行測試,該怎麼辦?
如果沒有可用的裝置資源符合測試模組 測試模組無法正常運作,因此已略過。
舉例來說,如果測試模組要求取得 SIM 卡才能執行,但沒有任何裝置具有 SIM 卡,測試模組失敗。
實作
將此功能旗標傳遞至主要的 Tradefed 指令列:
--enable-token-sharding