Geräteseitige Messwert-Collectors

Bei der Ausführung geräteseitiger Tests (z. B. Instrumentierungen, UI Automator-Tests) sind hostseitige Collectors möglicherweise nicht ideal, da es schwierig ist, die Messwerterfassung mit einem Test zu synchronisieren, der auf einem Gerät ausgeführt wird. Beispielsweise wird bei einem asynchron aufgenommenen Screenshot wahrscheinlich der gewünschte Bildschirm übersehen und ist daher nutzlos.

Für diese Anwendungsfälle gibt es eine geräteseitige Version unserer Collector, die in jeder AndroidJUnitRunner-Instrumentierung verwendet werden kann. BaseMetricListener kann implementiert werden, um Messwerte automatisch zu erfassen, die auf eine Weise erhoben werden, die vollständig mit der Tradefed-Berichtspipeline kompatibel ist.

Diese Bibliothek ist von Tradefed selbst getrennt und kann ohne Tradefed verwendet werden.

Wenn Sie den AndroidJUnitTest-Auslöser von Tradefed verwenden, können Sie die folgende Befehlszeilenoption angeben, damit der Collector mit Ihren Tests ausgeführt wird:

  --device-listeners android.device.collectors.ScreenshotListener
  LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib

Implementierung

Wenn Sie die Implementierung auf der Basisklasse BaseMetricListener aufbauen, können Sie auswählen, wann die Messwerte während des Lebenszyklus der Instrumentierung erfasst werden sollen:

  • Zu Beginn eines Testlaufs: onTestRunStart
  • Zu Beginn eines Testfalls: onTestStart
  • Wenn ein Testfall endet: onTestEnd
  • Wenn ein Test fehlschlägt: onTestFail
  • Wenn ein Testlauf endet: onTestRunEnd

Interaktion

Die Erhebung der Messwerte auf Geräteseite erfolgt synchron mit der Ausführung der Instrumentierung. Die Messwerte werden an die Instrumentierungsergebnisse zurückgegeben und von Tradefed analysiert, um als Teil der Aufrufe erfasst zu werden.