Suite-Wiederholung verwenden

Eine Suite umfasst in der Regel mehrere Testmodule und kann die Größe des Testkorpus. Beispiele: Android Compatibility Test Suite (CTS) umfasst Hunderte von Modulen und Hunderttausende Testläufe.

Aufgrund schlechter Isolation können eine große Anzahl von Tests fehlschlagen oder Geräte in einem schlechten Zustand sind.

Die Wiederholungsfunktion der Suite ist für diese Fälle gedacht: Sie können damit statt der ganzen Suiten, um unzuverlässige und schlechte Isolation. Wenn ein Test ständig fehlschlägt, schlägt auch der Wiederholungsversuch fehl. und ein viel stärkeres Signal dafür, dass es ein Problem gibt.

Suite-Wiederholung implementieren

Zum Wiederholen von Ergebnissen werden die vorherigen Ergebnisse gelesen und der vorherigen Aufrufs an.

Die Hauptschnittstelle für den Wiederholungsversuch ist ITestSuiteResultLoader. mit dem Sie ein vorheriges Ergebnis und die vorherige Befehlszeile laden können.

RetryRescheduler erstellt mit diesen Informationen den vorherigen Befehl neu Filter verwenden, um nur die vorherigen Fehler oder nicht ausgeführte Tests erneut auszuführen.

Wiederholung der Beispielsuite: CTS

Die Wiederholungskonfiguration in CTS sieht so aus:

<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>

Dies gilt für die meisten Suiten, die die Erweiterung erweitern, z. B. VTS:

Der Aufruf würde folgendermaßen erfolgen:

cts-tradefed run retry --retry <session>

Die Sitzung wird ermittelt, indem die vorherigen Ergebnisse in der CTS-Konsole aufgelistet werden:

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

Der genaue ursprüngliche Befehl wird neu geladen und mit zusätzlichen Filtern noch einmal ausgeführt. Dieses Wenn Ihr ursprünglicher Befehl einige Optionen enthielt, sind diese auch der Wiederholung.

Beispiel:

cts-tradefed run cts-dev -m CtsGestureTestCases

Die Wiederholung der obigen Ausführung ist immer an CtsGestureTestCases gebunden, weil wiederholen wir einen Befehl, der nur diese Rolle umfasste.

Wiederholungsversuch für Suite im CTS-Stil konfigurieren

Damit der Wiederholungsversuch funktioniert, müssen die vorherigen Ergebnisse exportiert werden .proto-Format. Folgendes muss hinzugefügt werden:

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

Diese muss der XML-Konfiguration des Hauptbefehls hinzugefügt werden führt dazu, dass eine test-record.pb-Datei im Ergebnisordner erstellt wird.

Der CTS-Wiederholungsversuch lädt dann Daten aus einer Kombination aus test-record.pb und Den vorhandenen test_result.xml, um den Wiederholungsaufruf vorzubereiten.