Kolektory danych o wydajności hosta działają na hoście, a nie na urządzeniu. Wchodzą w interakcję z urządzeniem po stronie hosta, aby zbierać dane, na których im zależy.
Projekt kolektora danych
Klasą bazową, z której wywodzą się wszystkie kolektory, jest
BaseDeviceMetricCollector,
która zapewnia te same podstawowe funkcje:
- Filtrowanie
- Wyłączam
- Zbieranie danych dotyczących przypadków testowych a uruchomień testów
Kolektory działają zgodnie z modelem raportowania wyników, ponieważ synchronizują się z wykonaniem testu na hoście. Inaczej mówiąc, jeśli testy są sterowane przez hosta, moduły zbierające są wykonywane przed przejściem testu do następnego kroku wykonania.
Jeśli na przykład kolektor wykonuje się na testEnded, kolektory wykonują się przed przejściem do następnego testu na testStart.
Wdrażanie kolektora danych sterowanego przez hosta
Podczas implementacji na podstawie klasy bazowej BaseDeviceMetricCollector możesz zdecydować, kiedy zbierać dane w trakcie cyklu życia:
- Gdy rozpoczyna się test:
onTestRunStart - Gdy rozpoczyna się test:
onTestStart - Po zakończeniu przypadku testowego:
onTestEnd - Po zakończeniu testu:
onTestRunEnd
Przeprowadzanie asynchronicznego zbierania danych
Oprócz metod synchronicznych TF udostępnia klasę bazową do implementacji, która wykonuje okresowe zbieranie asynchroniczne, ScheduledDeviceMetricCollector, która udostępnia metodę collect do implementacji, która jest uruchamiana okresowo.
Okres można dostosować za pomocą opcji.
Konfiguracja XML
Tag obiektu to metrics_collector, np.:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
Rekomendacje
Sprawdź istniejącą listę kolektorów, aby nie duplikować pracy. Staramy się zapewnić maksymalną możliwość wielokrotnego użycia, dlatego każdy kolektor wykonuje tylko jeden typ kolekcji, co pozwala na większe mieszanie i dopasowywanie różnych kolektorów podczas wykonania testu.