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.