In diesem Abschnitt werden die internen Komponenten von Tradefed und ihre Beziehungen beschrieben. Weitere Informationen finden Sie auf den verlinkten Unterseiten.
Testkonfigurationen
Testkonfigurationen in Tradefed werden im XML-Format beschrieben. Die Struktur der Konfiguration ist entscheidend für die Ausführung und Anpassung von Tests.
Struktur von TF-Konfigurationen
Globale TF-Konfigurationen
Eine globale Konfigurationsdatei ist eine spezielle Tradefed-XML-Konfiguration, die beim Starten von Tradefed über die Umgebungsvariable TF_GLOBAL_CONFIG
geladen wird. Es werden Objekte geladen, die sich auf den Tradefed-Instanzbereich beziehen und sich auf das Gesamtverhalten des Harness auswirken.
Details zur globalen Konfiguration
Schlüsselspeicher
Mit dem Keystore können Befehlszeilenoptionen aus einem Keystore in Tradefed eingefügt werden, um eine direkte Referenzierung des Werts in der Befehlszeile zu vermeiden. So können Passwörter aus der Befehlszeile ausgeblendet werden, indem sie direkt aus dem Schlüsselspeicher abgerufen werden.
Gerätemanager
Der Gerätemanager ist dafür verantwortlich, den Status der Geräte in einer laufenden Instanz von Tradefed im Blick zu behalten. Aspekte wie der Zuweisungsstatus und der Onlinestatus werden überwacht.
Testbefehls-Scheduler
Der Testbefehlsplaner in Tradefed nimmt Befehle zur Ausführung entgegen, verknüpft sie mit Geräten und startet eine Testausführung.
Anbieter erstellen
Der Build-Anbieter ist der erste Schritt bei jedem Testaufruf. Es werden Ressourcen heruntergeladen, die zum Einrichten und Ausführen der Tests erforderlich sind (z. B. Build-Images und Test-APKs). Außerdem verweist es auf sie in einem BuildInfo
-Objekt, das an den Test übergeben wird. Lokal verfügbare Ressourcen können auch im BuildInfo
-Objekt verknüpft werden.
Zielvorbereitung und -bereinigung
Target Preparer bietet optionale Aktionen, mit denen das Testziel in einen bestimmten Zustand konfiguriert werden kann, z. B. das Flashen des Geräts, das Festlegen bestimmter Eigenschaften und die Verbindung zum WLAN.
- Neuen Zielvorbereitungs-/-bereinigungsmechanismus hinzufügen
- Neuen vorbereiteten Editor für mehrere Ziele hinzufügen
Test-Ausführer
Ein Test-Runner in Tradefed bezieht sich auf das Objekt, das für die tatsächliche Testausführung verantwortlich ist. Unterschiedliche Testläufer steuern die Testausführung auf unterschiedliche Weise. Ein Instrumentierungs-Testlauf unterscheidet sich beispielsweise stark von einem JUnit-Testlauf.
Ergebnis Reporter
„Result reporter“ in Tradefed bezieht sich auf das Objekt, über das die Ergebnisse an ein bestimmtes Ziel gesendet werden. Jede Implementierung ist in der Regel auf unterschiedliche Ergebnis-Back-Ends spezialisiert. Der Ergebnisberichter ist dafür verantwortlich, das Tradefed-Ergebnisformat in das Zielformat umzuwandeln.
Dieses flexible Design ermöglicht es, dass jeder Test an eines der Ergebnisziele gesendet werden kann und dass auf einfache Weise weitere Tests hinzugefügt werden können.
- Ergebnisberichterstatter hinzufügen
- Ergebnismelder und -protokolle
- Zusammenfassung des Ergebnis-Reporters
Messwert-Collector
Der Messwert-Erfassungsmechanismus ist ein spezielles Objekt in Tradefed, das unabhängig von der Testausführung ist. Es ermöglicht die Erfassung von Informationen an verschiedenen Punkten des Testlebenszyklus (z. B. Teststart und -ende). Da der Messwerterfassungsmechanismus vom Test selbst getrennt ist, können die Punkte ausgetauscht, hinzugefügt und entfernt werden, ohne dass der Test selbst geändert werden muss.
Hostweite Einrichtung
In diesem Abschnitt werden Konfigurationen beschrieben, die für die Ausführung einer vollständigen Tradefed-Instanz gelten. Diese Optionen wirken sich auf das Verhalten des Harness als Ganzes aus, um sich an verschiedene Umgebungen anzupassen, z. B. an ein eingeschränktes Netzwerk.
Zusätzliche Funktionen
In den folgenden Abschnitten wird die allgemeine Verwendung von Tradefed-Dateien anstelle von Tradefed-Objekten beschrieben.
Tradefed-Sharding
Wenn der Testkorpus groß ist oder seine Ausführung lange dauert, können Sie ihn auf mehrere Geräte aufteilen. Diese Aufteilung wird als Fragmentierung bezeichnet. In diesem Abschnitt wird beschrieben, wie Fragmentierung funktioniert und konfiguriert wird.
SL4A verwenden
Tradefed unterstützt die Scripting-Ebene für Android, SL4A. Das ist ein Automatisierungs-Toolset zum Plattformunabhängigen Aufrufen von Android APIs.
Dynamischer @option-Download
In einigen Fällen sind die für einen Test oder einen bestimmten Vorgang erforderlichen Dateien nicht lokal verfügbar. Mit dieser Funktion kann Tradefed diese Dateien von einem Remote-Speicherort abrufen, ohne einen Build-Anbieter zu verwenden.