Kolektory danych opartych na hosta działają na hoście, a nie po stronie urządzenia. Interakcje z urządzeniem odbywają się po stronie hosta, aby zbierać dane, na które jest nastawiony.
Projekt kolektora danych
Klasa bazowa, którą rozszerzają wszystkie kolektory, to
BaseDeviceMetricCollector
co pomaga udostępniać te same podstawowe funkcje:
- Filtrowanie
- Wyłączam
- Zbieranie danych o przypadkach testowych a uruchomieniach testów
kolektory postępują zgodnie z narzędziem raportującym wyniki, ponieważ są one synchronizowane z wykonaniem 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órka danych jest wykonywana w funkcji testEnded
, zbiórki danych są wykonywane przed wykonaniem następnego testu w funkcji testStart
.
Wdrożenie host-driven collectora danych
Podczas implementowania na klasie podstawowej BaseDeviceMetricCollector
mogą zdecydować, kiedy zbierać dane w trakcie cyklu życia:
- Gdy rozpoczyna się test:
onTestRunStart
- Kiedy uruchamia się przypadek testowy:
onTestStart
- Po zakończeniu przypadku testowego:
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
Zobacz istniejącą listę kolektorów. aby zapobiec powielaniu 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.