W tej sekcji opisano wewnętrzne elementy Tradefed i relacje pomiędzy nimi. Więcej szczegółów znajdziesz na powiązanych podstronach.
Konfiguracje testowe
Konfiguracje testowe w Tradefed opisane są w formacie XML. Zrozumienie struktury konfiguracji jest kluczem do uruchamiania i dostosowywania testów.
Struktura konfiguracji TF
Globalne konfiguracje TF
Globalny plik konfiguracyjny to specjalna konfiguracja XML Tradefed, która jest ładowana podczas uruchamiania Tradefed poprzez zmienną środowiskową TF_GLOBAL_CONFIG
. Ładuje obiekty powiązane z zakresem instancji Tradefed, które będą miały wpływ na ogólne zachowanie wiązki przewodów.
Szczegóły konfiguracji globalnej
Magazyn kluczy
Magazyn kluczy umożliwia wprowadzenie do Tradefed opcji wiersza poleceń pochodzących z magazynu kluczy, aby uniknąć odwoływania się do wartości bezpośrednio w wierszu poleceń. Można tego użyć do ukrycia haseł z wiersza poleceń poprzez bezpośrednie pobranie haseł z magazynu kluczy.
Menadżer urządzeń
Menedżer urządzeń jest odpowiedzialny za śledzenie stanu urządzeń w działającej instancji Tradefed. Monitorowane są takie aspekty, jak status alokacji i status online.
Testuj harmonogram poleceń
Harmonogram poleceń testowych w Tradefed pobiera polecenia do uruchomienia, kojarzy je z urządzeniami i rozpoczyna wywołanie testowe.
Dostawca kompilacji
Dostawca kompilacji to pierwszy krok każdego wywołania testu. Pobiera zasoby potrzebne do skonfigurowania i uruchomienia testów (kompilowanie obrazów, testowanie plików APK i nie tylko). Odwołuje się do nich również w obiekcie BuildInfo
, który zostanie przekazany do testu. Lokalnie dostępne zasoby można także połączyć w obiekcie BuildInfo
.
Osoba przygotowująca i czyszcząca cel
Narzędzie do przygotowywania obiektów docelowych oferuje opcjonalne działania, które można podjąć w celu skonfigurowania testowanego obiektu docelowego do określonego stanu, na przykład flashowanie urządzenia, ustawienie określonych właściwości i połączenie z Wi-Fi.
Biegacz testowy
Osoba przeprowadzająca test w Tradefed odnosi się do obiektu odpowiedzialnego za faktyczne wykonanie testu. Różni uczestnicy testów kierują wykonaniem testów na różne sposoby; na przykład osoba przeprowadzająca testy oprzyrządowania będzie bardzo różnić się od osoby przeprowadzającej testy JUnit.
Reporter wyników
Reporter wyników w Tradefed odnosi się do obiektu, który wyśle wyniki do określonego miejsca docelowego. Każda implementacja jest zwykle wyspecjalizowana dla różnych wyników końcowych. Osoba zgłaszająca wyniki jest odpowiedzialna za konwersję formatu wyników Tradefed na format docelowy.
Ta elastyczna konstrukcja umożliwia raportowanie dowolnego testu do dowolnego miejsca docelowego wyników i łatwe dodawanie większej liczby testów w izolowany sposób.
Kolekcjoner metryk
Kolektor metryk to specjalny obiekt w Tradefed, prostopadły do wykonania testu. Umożliwia zbieranie informacji w różnych momentach cyklu życia testu (na przykład początek testu, koniec testu). Ponieważ kolektor jest oddzielony od samego testu, punkty można zamieniać, dodawać i usuwać bez konieczności zmiany samego testu.
Konfiguracja obejmująca cały host
W tej sekcji opisano konfiguracje, które mają zastosowanie do działania pełnej instancji Tradefed. Opcje te wpływają na zachowanie uprzęży jako całości, aby dostosować się do różnych środowisk, na przykład w sieci z ograniczeniami.
Dodatkowe funkcje
Poniższe sekcje opisują ogólne użycie obiektów Tradefed, a nie Tradefed.
Handel shardingiem
Jeżeli korpus testowy jest duży lub jego wykonanie zajmuje dużo czasu, możliwe jest podzielenie go na kilka urządzeń. Ten podział nazywamy shardingiem . W tej sekcji opisano, jak działa fragmentowanie i jak jest konfigurowane.
Korzystanie z SL4A
Tradefed obsługuje warstwę skryptową dla systemu Android, SL4A; jest to zestaw narzędzi do automatyzacji umożliwiający wywoływanie interfejsów API systemu Android w sposób niezależny od platformy.
Dynamiczne pobieranie @opcji
W niektórych przypadkach pliki potrzebne do testu lub określonej operacji nie są dostępne lokalnie. Ta funkcja umożliwia Tradefed uzyskanie tych plików ze zdalnej lokalizacji bez konieczności korzystania z dostawcy kompilacji.