Architektura Tradefed

W tej sekcji opisujemy wewnętrzne elementy Tradefed i ich relacje. Więcej informacji znajdziesz na połączonych podstronach.

Konfiguracje testowe

Konfiguracje testów w Tradefed są opisane w formacie XML. Zrozumienie struktury konfiguracji jest kluczowe do przeprowadzania i dostosowywania testów.

Struktura konfiguracji TF

Globalne konfiguracje TF

Plik konfiguracji globalnej to specjalna konfiguracja XML Tradefed, która jest wczytywana podczas uruchamiania Tradefed za pomocą zmiennej środowiskowej TF_GLOBAL_CONFIG. Wczytuje obiekty związane z zakresem instancji Tradefed, które wpłyną na ogólne działanie platformy.

Szczegóły konfiguracji globalnej

Magazyn kluczy

Usługa Keystore umożliwia wstrzykiwanie do Tradefed opcji wiersza poleceń pochodzących z usługi Keystore, aby uniknąć bezpośredniego odwoływania się do wartości w wierszu poleceń. Można go użyć do ukrywania haseł w wierszu poleceń przez bezpośrednie pobieranie haseł z magazynu kluczy.

Szczegóły magazynu kluczy

Menedżer urządzeń

Menedżer urządzeń odpowiada za śledzenie stanu urządzeń w działającej instancji Tradefed. Monitorowane są aspekty takie jak stan przydziału i stan online.

Harmonogram poleceń testowych

Harmonogram poleceń testowych w Tradefed przyjmuje polecenia do uruchomienia, przypisuje je do urządzeń i rozpoczyna wywołanie testu.

Tworzenie dostawcy

Dostawca kompilacji to pierwszy krok każdego wywołania testu. Pobiera zasoby potrzebne do skonfigurowania i przeprowadzenia testów (obrazy kompilacji, testowe pliki APK itp.). Odwołuje się też do nich w obiekcie BuildInfo, który zostanie przekazany do testu. Zasoby dostępne lokalnie można też połączyć w obiekcie BuildInfo.

Preparat do czyszczenia i przygotowywania powierzchni

Przygotowanie urządzenia docelowego obejmuje opcjonalne działania, które można wykonać, aby skonfigurować testowane urządzenie docelowe w określonym stanie, np. flashowanie urządzenia, ustawianie określonych właściwości i łączenie z Wi-Fi.

Test runner

W Tradefed tester to obiekt odpowiedzialny za rzeczywiste wykonanie testu. Różne programy do uruchamiania testów przeprowadzają wykonanie testu na różne sposoby. Na przykład program do uruchamiania testów z instrumentacją będzie się bardzo różnić od programu do uruchamiania testów JUnit.

Zgłaszający wynik

W Tradefed reporter wyników to obiekt, który wysyła wyniki do określonego miejsca docelowego. Każda implementacja jest zwykle wyspecjalizowana pod kątem różnych backendów wyników. Osoba raportująca wyniki jest odpowiedzialna za przekształcenie formatu wyników Tradefed w format docelowy.

Ta elastyczna konstrukcja umożliwia przesyłanie wyników dowolnego testu do dowolnego miejsca docelowego wyników oraz łatwe dodawanie kolejnych testów w sposób odizolowany.

Kolektor danych

Kolektor danych to specjalny obiekt w Tradefed, ortogonalny do wykonywania testów. Umożliwia zbieranie informacji w różnych punktach cyklu życia testu (np. na początku i na końcu testu). Ponieważ kolektor jest odseparowany od samego testu, punkty można zamieniać, dodawać i usuwać bez konieczności zmiany samego testu.

Konfiguracja na poziomie hosta

W tej sekcji opisujemy konfiguracje, które mają zastosowanie do pełnej instancji Tradefed. Te opcje wpływają na działanie całego narzędzia, aby dostosować je do różnych środowisk, np. sieci o ograniczonym dostępie.

Dodatkowe funkcje

W sekcjach poniżej opisujemy ogólne zastosowania Tradefed, a nie obiekty Tradefed.

Fragmentacja w Tradefed

Jeśli korpus testowy jest duży lub jego wykonanie zajmuje dużo czasu, można go podzielić na kilka urządzeń. Ten podział nazywamy fragmentowaniem. W tej sekcji opisujemy, jak działa dzielenie na fragmenty i jak je skonfigurować.

Szczegóły podziału

Korzystanie z SL4A

Tradefed obsługuje warstwę skryptową Androida, SL4A, czyli zestaw narzędzi do automatyzacji wywoływania interfejsów API Androida w sposób niezależny od platformy.

SL4A ze szczegółami Tradefed

Dynamiczne @option download

W niektórych przypadkach pliki potrzebne do przeprowadzenia testu lub wykonania określonej operacji nie są dostępne lokalnie. Ta funkcja umożliwia Tradefed pobieranie tych plików ze zdalnej lokalizacji bez korzystania z usług dostawcy kompilacji.

Pobieranie dynamiczne @option