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
Klasa bazowa, z której wywodzą się wszystkie kolektory, to
BaseDeviceMetricCollector
,
która zapewnia te same podstawowe funkcje:
- Filtrowanie
- Wyłączanie
- 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. Innymi słowy, jeśli testy są sterowane przez hosta, kolektory są wykonywane przed przejściem testu do następnego kroku wykonania.
Jeśli na przykład zbieranie danych jest wykonywane w przypadku testEnded
, zbieranie danych jest wykonywane przed przejściem do następnego testu z 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ę przypadek testowy:
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
, na przykład:
<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ść ponownego użycia, więc każdy moduł zbierający wykonuje jeden typ zbierania, co pozwala na większe mieszanie i dopasowywanie różnych modułów zbierających podczas wykonywania testu.