Zbieracze danych sterowane przez hosta działają po stronie hosta, a nie urządzenia. Interakcje z urządzeniem odbywają się po stronie hosta, aby zbierać dane, na które jest nastawiony.
Projekt kolektora danych
Klasa podstawowa, z której korzystają wszystkie klasy zbierające, to:
BaseDeviceMetricCollector
,
która zapewnia te same podstawowe funkcje:
- Filtrowanie
- Wyłączanie
- Zbieranie danych o przypadkach testowych a uruchomieniach testów
Zbieracze działają zgodnie z modelem przesyłającego wyniki, ponieważ synchronizują się z wynikiem testu na hoście. Innymi słowy, jeśli testy są host-driven, zbieracze są wykonywane przed przejściem do następnego kroku wykonania.
Jeśli na przykład zbiór danych jest wykonywany w przypadku testEnded
, zbiór danych jest wykonywany przed wykonaniem następnego testu z użyciem testStart
.
Wdrożenie host-driven metrics collector
Podczas wdrażania na podstawie klasy podstawowej BaseDeviceMetricCollector
możesz określić, kiedy zbierać dane w trakcie cyklu życia:
- Gdy rozpoczyna się test:
onTestRunStart
- Gdy rozpoczyna się test:
onTestStart
- Po zakończeniu testu:
onTestEnd
- Po zakończeniu testu:
onTestRunEnd
Przeprowadzanie asynchronicznego zbierania
Oprócz metod synchronicznych TF udostępnia klasę podstawową do implementacji, która wykonuje okresowe zbieranie asynchroniczne (ScheduledDeviceMetricCollector
). Zawiera ona metodę collect
, która jest implementowana i uruchamiana okresowo.
Okres można dostosować za pomocą opcji.
Konfiguracja XML
Tag obiektu to metrics_collector
, na przykład:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
Rekomendacje
Sprawdź listę istniejących kolekcji, aby upewnić się, że nie dublujesz pracy. Staramy się zapewnić maksymalną możliwość ponownego użycia, więc każdy kolektor wykonuje jeden typ zbierania, co umożliwia większą mieszankę i dopasowanie różnych kolektorów podczas wykonywania testu.