Tradefed-Architektur

In diesem Abschnitt werden die Interna von Tradefed und ihre Beziehungen beschrieben. Weitere Einzelheiten finden Sie auf den verlinkten Unterseiten.

Testkonfigurationen

Testkonfigurationen in Tradefed werden in einem XML-Format beschrieben. Das Verständnis der Struktur der Konfiguration ist der Schlüssel zum Ausführen und Anpassen von Tests.

Struktur von TF-Konfigurationen

Globale TF-Konfigurationen

Eine globale Konfigurationsdatei ist eine spezielle Tradefed-XML-Konfiguration, die beim Start von Tradefed über die Umgebungsvariable TF_GLOBAL_CONFIG geladen wird. Es lädt Objekte im Zusammenhang mit dem Tradefed-Instanzbereich, die sich auf das Gesamtverhalten des Kabelbaums auswirken.

Details zur globalen Konfiguration

Schlüsselspeicher

Keystore ermöglicht die Injektion von Befehlszeilenoptionen aus einem Keystore in Tradefed, um zu vermeiden, dass der Wert direkt in der Befehlszeile referenziert wird. Dies kann verwendet werden, um Passwörter in der Befehlszeile zu verbergen, indem Passwörter direkt aus dem Keystore abgerufen werden.

Details zum Keystore

Gerätemanager

Der Gerätemanager ist dafür verantwortlich, den Status der Geräte auf einer laufenden Instanz von Tradefed zu verfolgen. Aspekte wie der Belegungsstatus und der Online-Status werden überwacht.

Testen Sie den Befehlsplaner

Der Testbefehlsplaner in Tradefed nimmt Befehle zur Ausführung entgegen, ordnet sie Geräten zu und startet einen Testaufruf.

Build-Anbieter

Der Build-Provider ist der erste Schritt jedes Testaufrufs. Es lädt Ressourcen herunter, die zum Einrichten und Ausführen der Tests erforderlich sind (Images erstellen, APKs testen usw.). Außerdem wird auf sie in einem BuildInfo Objekt verwiesen, das an den Test übergeben wird. Auch lokal verfügbare Ressourcen können im BuildInfo Objekt verknüpft werden.

Zielvorbereiter und -reiniger

Der Target-Vorbereiter bietet optionale Aktionen, mit denen das zu testende Ziel in einen bestimmten Zustand konfiguriert werden kann, z. B. das Flashen des Geräts, das Festlegen bestimmter Eigenschaften und das Herstellen einer WLAN-Verbindung.

Testläufer

Ein Testläufer bezieht sich in Tradefed auf das Objekt, das für die eigentliche Testausführung verantwortlich ist. Verschiedene Testläufer steuern die Testausführung auf unterschiedliche Weise. Beispielsweise unterscheidet sich ein Instrumentierungstestläufer stark von einem JUnit-Testläufer.

Ergebnisreporter

Der Ergebnisreporter in Tradefed bezieht sich auf das Objekt, das die Ergebnisse an ein bestimmtes Ziel sendet. Jede Implementierung ist normalerweise auf unterschiedliche Ergebnis-Backends spezialisiert. Und der Ergebnisreporter ist für die Konvertierung des Tradefed-Ergebnisformats in das Zielformat verantwortlich.

Durch dieses flexible Design kann jeder Test an jedes beliebige Ergebnisziel gemeldet werden und problemlos weitere Tests auf isolierte Weise hinzugefügt werden.

Metriksammler

Der Metriksammler ist ein spezielles Objekt in Tradefed, orthogonal zur Testausführung. Es ermöglicht die Erfassung von Informationen zu verschiedenen Zeitpunkten des Testlebenszyklus (z. B. Teststart, Testende). Da der Kollektor vom Test selbst entkoppelt 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 Setups beschrieben, die für die Ausführung einer vollständigen Tradefed-Instanz gelten. Diese Optionen beeinflussen das Verhalten des Kabelbaums als Ganzes, um sich an unterschiedliche Umgebungen anzupassen, beispielsweise in einem eingeschränkten Netzwerk.

Zusatzfunktionen

In den folgenden Abschnitten wird die allgemeine Verwendung von Tradefed anstelle von Tradefed-Objekten beschrieben.

Tradefed-Sharding

Wenn der Testkorpus groß ist oder die Ausführung lange dauert, ist es möglich, ihn auf mehrere Geräte aufzuteilen. Wir bezeichnen diese Aufteilung als Sharding . In diesem Abschnitt wird beschrieben, wie Sharding funktioniert und wie es konfiguriert wird.

Sharing-Details

Verwendung von SL4A

Tradefed unterstützt die Skriptebene für Android, SL4A; Hierbei handelt es sich um ein Automatisierungstoolset zum plattformunabhängigen Aufrufen von Android-APIs.

SL4A mit Tradefed-Details

Dynamischer @option-Download

In manchen Fällen sind die für einen Test oder einen bestimmten Vorgang benötigten Dateien lokal nicht verfügbar. Mit dieser Funktion kann Tradefed diese Dateien von einem Remote-Standort abrufen, ohne einen Build-Anbieter in Anspruch nehmen zu müssen.

Dynamischer @option-Download