Suite-Wiederholung verwenden

Eine Suite umfasst in der Regel mehrere Testmodule und kann eine recht große Testkorpusgröße erreichen. Zum Beispiel kann die Android Compatibility Test Suite (CTS) enthält Hunderte von Modulen und Hunderttausende von Testfällen.

Es wird möglich, dass eine große Anzahl von Tests aufgrund einer schlechten Isolierung oder eines schlechten Zustands von Geräten fehlschlägt.

Die Suite-Wiederholungsfunktion ist für diese Fälle gedacht: Sie ermöglicht es Ihnen, nur die Fehler anstelle der vollständigen Suiten zu wiederholen, um Flockigkeit und schlechte Isolation auszuschließen. Wenn ein Test durchweg fehlschlägt, schlägt auch die Wiederholung fehl; und Sie erhalten ein viel stärkeres Signal, dass es ein echtes Problem gibt.

Suite-Wiederholung implementieren

Die Wiederholung von Ergebnissen beinhaltet das Lesen der vorherigen Ergebnisse und das erneute Ausführen des vorherigen Aufrufs.

Die wichtigste Schnittstelle des Wiederholungsfahr ist ITestSuiteResultLoader , das Ihnen ein vorheriges Ergebnis laden kann, und die vorherige Befehlszeile.

Die RetryRescheduler verwendet diese Informationen den vorherigen Befehl neu zu erstellen und einige Filter , um wieder laufen nur die vorherigen Fehler oder nicht durchgeführten Tests zu füllen.

Beispiel-Suite-Wiederholung: CTS

Die Wiederholungskonfiguration in CTS ist:

<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 der Suiten , die es sich beispiels VTS ).

Es würde aufgerufen werden über:

cts-tradefed run retry --retry <session>

Die Sitzung wird gefunden, 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 exakte Originalbefehl wird neu geladen und mit zusätzlichen Filtern erneut ausgeführt. Dies bedeutet, dass, wenn Ihr ursprünglicher Befehl einige Optionen enthält, diese auch Teil des Wiederholungsversuchs sind.

Zum Beispiel:

cts-tradefed run cts-dev -m CtsGestureTestCases

Die Wiederholung der oben würde immer begrenzt sein CtsGestureTestCases da wir einen Befehl werden immer wieder versuchen, nur daran beteiligt.

Wiederholen für Suite im CTS-Stil konfigurieren

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

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

Dies muss in der XML - Konfiguration des Hauptbefehls hinzugefügt werden, und es wird in einer Folge test-record.pb Datei im Ergebnisordner erstellt werden.

Die CTS - Wiederholungs dann lädt Daten aus einer Kombination aus dem test-record.pb und die bestehende test_result.xml den Wiederholungs Aufruf vorzubereiten.