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.