Zbieracze danych po stronie urządzenia

Podczas przeprowadzania testów na urządzeniu (np. testów instrumentacji lub testów UI Automator) kolektory po stronie hosta mogą nie być idealne, ponieważ trudno jest zsynchronizować zbieranie danych z testem uruchomionym na urządzeniu. Na przykład zrzut ekranu zrobiony asynchronicznie prawdopodobnie nie będzie zawierać pożądanego ekranu i będzie bezużyteczny.

Aby sprostać tym przypadkom użycia, istnieje wersja naszych kolektorów działająca na urządzeniu, której można używać w dowolnym AndroidJUnitRunner. BaseMetricListener można wdrożyć, aby automatycznie raportować dane, które są zbierane w sposób w pełni zgodny z potokiem raportowania Tradefed.

Ta biblioteka jest oddzielona od Tradefed i może być używana bez Tradefed.

Jeśli używasz narzędzia AndroidJUnitTest Tradefed, możesz użyć tego wiersza poleceń, aby uruchomić kolektor razem z testami:

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

Implementacja

Podczas implementacji na podstawie klasy bazowej BaseMetricListener możesz wybrać, kiedy chcesz zbierać dane w trakcie cyklu życia instrumentacji:

  • Gdy rozpoczyna się test: onTestRunStart
  • Gdy rozpoczyna się przypadek testowy: onTestStart
  • Po zakończeniu przypadku testowego: onTestEnd
  • Gdy przypadek testowy zakończy się niepowodzeniem: onTestFail
  • Po zakończeniu testu: onTestRunEnd

Interakcja

Zbieranie danych po stronie urządzenia odbywa się synchronicznie z wykonaniem instrumentacji, a dane są przekazywane z powrotem do wyników instrumentacji i parsowane przez Tradefed, aby można je było zgłosić w ramach wywołania.