Zbieracze danych po stronie urządzenia

Podczas przeprowadzania testów na urządzeniu (np. testów instrumentacji czy testów Automatora interfejsu) zbieracze po stronie hosta mogą nie być idealne, ponieważ trudno jest zsynchronizować zbieranie danych z testem przeprowadzanym na urządzeniu. Na przykład zrzut ekranu zrobiony asynchronicznie może nie zawierać potrzebnego ekranu i być bezużyteczny.

Aby sprostać tym wymaganiom, udostępniamy wersję naszych kolektorów po stronie urządzenia, którą można używać w dowolnym przypadku użycia AndroidJUnitRunner. BaseMetricListener możesz wdrożyć, aby automatycznie raportować dane zbierane w sposób w pełni zgodny z systemem raportowania Tradefed.

Ta biblioteka jest odłączona od samego Tradefed i można jej używać bez Tradefed.

Jeśli używasz AndroidJUnitTest runnera z Tradefed, możesz podać tę opcję wiersza poleceń, aby uruchomić kolektor 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 działania spersonalizowanej implementacji:

  • Gdy rozpoczyna się test: onTestRunStart
  • Gdy rozpoczyna się test: onTestStart
  • Po zakończeniu testu: 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. Dane są przekazywane z powrotem do wyników instrumentacji i przetwarzane przez Tradefed, aby mogły być raportowane w ramach wywołania.