Ponów próbę użycia pakietu

Pakiet składa się zwykle z kilku modułów testowych i może docierać do sporego rozmiar korpusu testowego. Na przykład: Android Compatibility Test Suite (CTS). zawiera setki modułów i setki tysięcy przypadków testowych.

Duża liczba testów może zakończyć się niepowodzeniem z powodu słabej izolacji lub urządzeń będących w złym stanie.

Funkcja ponawiania prób w pakiecie ma pomóc w tych przypadkach: umożliwia ponawianie a nie tylko całego zestawu, aby uniknąć niestabilności słaba izolacja. Jeśli test stale kończy się niepowodzeniem, ponowna próba też się nie powiedzie. oraz otrzymujesz znacznie silniejszy sygnał, że rzeczywiście problem występuje.

Ponów próbę wdrożenia pakietu

Ponowienie próby polega na odczytaniu poprzednich wyników i ponownym uruchomieniu poprzedniego wywołania.

Główny interfejs powodujący ponowienie próby to ITestSuiteResultLoader, który pozwala wczytać poprzedni wynik i poprzedni wiersz poleceń.

RetryRescheduler a następnie za pomocą tych informacji odtworzy poprzednie polecenie i uzupełni niektóre filtry pozwalające ponownie uruchomić tylko wcześniejsze błędy lub nieprzeprowadzono testów.

Ponowna próba wyświetlenia przykładowego pakietu: CTS

Konfiguracja ponawiania w 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>

To dotyczy większości pakietów, które je rozszerzają, na przykład VTS.

W takiej sytuacji to:

cts-tradefed run retry --retry <session>

Sesję można znaleźć, wyświetlając listę poprzednich wyników w konsoli 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

Dokładne polecenie oryginalne zostanie wczytane ponownie i uruchomione ponownie z dodatkowymi filtrami. Ten co oznacza, że jeśli pierwotne polecenie zawierało jakieś opcje, zostaną one również a potem spróbować ponownie.

Na przykład:

cts-tradefed run cts-dev -m CtsGestureTestCases

Ponowienie tego działania jest zawsze powiązane z adresem CtsGestureTestCases, ponieważ ponawiamy polecenie, które dotyczyło tylko tego elementu.

Skonfiguruj ponawianie w pakiecie w stylu CTS

Aby ponowienie zadziałało, poprzednie wyniki musisz wyeksportować w w formacie proto. Musisz dodać te elementy:

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

Trzeba go dodać do konfiguracji XML polecenia głównego. powoduje utworzenie pliku test-record.pb w folderze wyników.

Następnie CTS ponów próbę, a następnie wczytuje dane z kombinacji tych danych: test-record.pb i istniejące test_result.xml, aby przygotować ponowne wywołanie.