Architektura Tradefed

W tej sekcji opisano 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

Keystore umożliwia wstrzykiwanie do Tradefed opcji wiersza poleceń pochodzących z magazynu kluczy, 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ń na działającej instancji Tradefed. Monitorowane są aspekty takie jak stan przydzielenia i stan online.

Harmonogram poleceń testowych

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

Dostawca kompilacji

Dostawca kompilacji to pierwszy krok w procesie wywoływania 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.

Przygotowywanie i czyszczenie celów

Przygotowanie urządzenia docelowego oferuje 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 się z Wi-Fi.

Test runner

W Tradefed moduł uruchamiający testy to obiekt odpowiedzialny za faktyczne wykonanie testu. Różne programy do uruchamiania testów przeprowadzają testy na różne sposoby. Na przykład program do uruchamiania testów instrumentacji będzie się bardzo różnić od programu do uruchamiania testów JUnit.

Zgłaszający wynik

W Tradefed moduł raportujący wyniki 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łcanie formatu wyników Tradefed na format docelowy.

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

Kolektor danych

Kolektor danych to specjalny obiekt w Tradefed, który jest niezależny od wykonywania testu. Umożliwia zbieranie informacji w różnych punktach cyklu życia testu (np. na początku i na końcu testu). Ponieważ moduł zbierający 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 działania pełnej instancji Tradefed. Te opcje wpływają na działanie całego modułu, aby dostosować go 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.

Dzielenie 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.

Dynamiczne pobieranie @option