Zbieracze danych po stronie urządzenia

Podczas przeprowadzania testów po stronie urządzenia (np. testów instrumentacji, 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 obejmie żądanego ekranu i będzie bezużyteczny.

Aby sprostać tym przypadkom użycia, istnieje wersja naszych kolektorów po stronie urządzenia, której można używać w dowolnej instrumentacji AndroidJUnitRunner. BaseMetricListener można zaimplementować, aby automatycznie zgłaszać dane zebrane 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 do uruchamiania AndroidJUnitTest z Tradefed, możesz określić tę opcję wiersza poleceń aby kolektor działał 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
  • Gdy kończy się przypadek testowy: onTestEnd
  • Gdy przypadek testowy się nie powiedzie: onTestFail
  • Gdy kończy się test: 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 analizowane przez Tradefed, aby można je było zgłosić w ramach wywołania.