Geräteseitige Messwerterfassung

Beim Ausführen von Tests auf dem Gerät (z. B. Instrumentations- oder UI Automator-Tests) sind Host-seitige Collectors möglicherweise nicht ideal, da es schwierig ist, die Messwerterfassung mit einem Test zu synchronisieren, der auf einem Gerät ausgeführt wird. Wenn beispielsweise ein Screenshot asynchron aufgenommen wird, ist es wahrscheinlich, dass der gewünschte Bildschirm nicht erfasst wird und der Screenshot nutzlos ist.

Für diese Anwendungsfälle ist eine geräteseitige Version unserer Collectors verfügbar, die in jeder AndroidJUnitRunner-Instrumentierung verwendet werden kann. BaseMetricListener kann implementiert werden, um Messwerte, die auf eine Weise erfasst werden, die vollständig mit der Tradefed-Berichtspipeline kompatibel ist, automatisch zu melden.

Diese Bibliothek ist von Tradefed entkoppelt und kann ohne Tradefed verwendet werden.

Wenn Sie den AndroidJUnitTest-Runner von Tradefed verwenden, können Sie die folgende Befehlszeilenoption angeben, damit Ihr 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 Grundlage der Basisklasse BaseMetricListener vornehmen, können Sie auswählen, wann die Messwerte während des Lebenszyklus der Instrumentierung erfasst werden sollen:

  • Wenn ein Testlauf beginnt: onTestRunStart
  • Wenn ein Testlauf beginnt: onTestStart
  • Wenn ein Testlauf endet: onTestEnd
  • Wenn ein Testlauf fehlschlägt: onTestFail
  • Wenn ein Testlauf endet: onTestRunEnd

Interaktion

Die Erfassung von Messwerten auf dem Gerät erfolgt synchron zur Ausführung der Instrumentierung selbst. Die Messwerte werden an die Instrumentierungsergebnisse zurückgegeben und von Tradefed geparst, um als Teil des Aufrufs gemeldet zu werden.