Podczas testów po stronie urządzenia (np. przyrządów, interfejsu UI Automator) ), kolektory po stronie hosta mogą nie być idealne, ponieważ trudno jest synchronizować zbieranie danych z testem uruchomionym na urządzeniu. Na przykład plik zrzut ekranu zrobiony asynchronicznie prawdopodobnie nie wyświetli się na ekranie i zostanie bezużyteczny.
Aby sprostać tym przypadkom użycia, istnieje wersja kolektorów po stronie urządzenia
Można go używać w dowolnej instrumentacji usługi AndroidJUnitRunner
.
BaseMetricListener
można wdrożyć w celu automatycznego raportowania zbieranych danych
w sposób w pełni zgodny z procesem raportowania Tradefed.
Ta biblioteka jest odłączona od organizacji Tradefed i można jej używać bez tej platformy.
Jeśli używasz AndroidJUnitTest
z Tradefed, możesz podać następującą opcję wiersza poleceń
aby uruchomić kolektor podczas testów:
--device-listeners android.device.collectors.ScreenshotListener
LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib
Implementacja
Implementując klasę podstawową BaseMetricListener
, możesz wybrać
gdy chcesz gromadzić dane w trakcie cyklu życia
instrumentacja:
- Kiedy uruchamia się test:
onTestRunStart
- Kiedy uruchamia 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 wskaźników po stronie urządzenia jest synchroniczne samego wykonania instrumentacji, a wskaźniki są przekazywane z powrotem do z wyników instrumentacji i analizowanych przez Tradefed .