使用套件重試

套件通常會含有多個測試模組,且可觸及大量 測試語料庫大小例如:Android Compatibility Test Suite (CTS) 包含數百個模組和數十萬個測試案例。

許多測試可能會因隔離效能不佳而失敗 或裝置進入不良狀態

套件重試功能旨在解決以下情況: 而非全套套件 成效不佳如果測試持續失敗,重試也會失敗。和 但真的發生問題

實作套件重試作業

重試結果牽涉到讀取先前的結果並重新執行 先前的叫用要求

導致重試作業的主介面為 ITestSuiteResultLoader。 可讓您載入上一個結果和上一個指令列。

RetryRescheduler敬上 然後根據這些資訊重新建立先前的指令 篩選器,以便重新執行先前失敗或未執行的測試。

套件重試範例:CTS

CTS 的重試設定如下:

<configuration description="Runs a retry of a previous CTS session.">
    <object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
    <test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />

    <logger class="com.android.tradefed.log.FileLogger">
        <option name="log-level-display" value="WARN" />
    </logger>
</configuration>

這種做法適用於大多數擴充該架構的套件,例如 VTS

這使用以下程式碼叫用:

cts-tradefed run retry --retry <session>

在 CTS 控制台中列出先前的結果即可找到這個工作階段:

cts-tf > l r
Session  Pass  Fail  Modules Complete  Result Directory     Test Plan  Device serial(s)  Build ID   Product
0        2092  30    148 of 999        2018.10.29_14.12.57  cts        [serial]          P          Pixel

系統會重新載入確切的原始指令,並使用額外的篩選器重新執行。這個 這表示如果您的原始指令包含一些選項 重試部分。

例如:

cts-tradefed run cts-dev -m CtsGestureTestCases

上述的重試次數一律會繫結至 CtsGestureTestCases,因為 我們正在重試只涉及該指令的指令

為 CTS 樣式套件設定重試

先前的結果必須匯出為 proto 格式。必須新增:

<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />

這需要新增至主要指令的 XML 設定, 結果資料夾中會產生 test-record.pb 檔案。

接著 CTS 重試時,系統會載入 test-record.pb 的組合資料, 現有的 test_result.xml,準備重試叫用。