Architecture du commerce

Cette section décrit les éléments internes de Tradefed et leurs relations. Voir les sous-pages liées pour plus de détails.

Configurations de test

Les configurations de test dans Tradefed sont décrites au format XML. Comprendre la structure de la configuration est essentiel pour exécuter et personnaliser les tests.

Structure des configurations TF

Configurations globales TF

Un fichier de configuration globale est une configuration XML Tradefed spéciale qui est chargée au démarrage de Tradefed via la variable d'environnement TF_GLOBAL_CONFIG . Il charge les objets liés à la portée de l'instance Tradefed qui affecteront le comportement global du harnais.

Détails de la configuration globale

Magasin de clés

Keystore permet d'injecter des options de ligne de commande à Tradefed provenant d'un keystore afin d'éviter de référencer la valeur directement sur la ligne de commande. Cela peut être utilisé pour masquer les mots de passe de la ligne de commande en récupérant directement les mots de passe du magasin de clés.

Détails du magasin de clés

Gestionnaire de périphériques

Le gestionnaire de périphériques est chargé de suivre l'état des appareils sur une instance en cours d'exécution de Tradefed. Des aspects tels que le statut d'attribution et le statut en ligne sont surveillés.

Planificateur de commandes de test

Le planificateur de commandes de test de Tradefed prend les commandes à exécuter, les associe aux appareils et lance un appel de test.

Fournisseur de build

Le fournisseur de build est la première étape de tout appel de test. Il télécharge les ressources nécessaires pour configurer et exécuter les tests (créer des images, tester des APK, etc.). Il les référence également dans un objet BuildInfo qui sera passé au test. Les ressources disponibles localement peuvent également être liées dans l'objet BuildInfo .

Préparateur et nettoyeur de cibles

Target Preparer propose des actions facultatives qui peuvent être prises pour configurer la cible testée dans un certain état, par exemple le flashage de l'appareil, la définition de certaines propriétés et la connexion au Wi-Fi.

Testeur

Un exécuteur de test dans Tradefed fait référence à l'objet responsable de l'exécution réelle du test. Différents lanceurs de tests pilotent l'exécution des tests de différentes manières ; par exemple, un exécuteur de test d'instrumentation sera très différent d'un exécuteur de test JUnit.

Journaliste des résultats

Le rapporteur de résultats dans Tradefed fait référence à l'objet qui enverra les résultats à une destination particulière. Chaque implémentation est généralement spécialisée pour différents back-ends de résultats. Et le rapporteur de résultats est chargé de convertir le format des résultats Tradefed au format de destination.

Cette conception flexible permet à n’importe quel test de communiquer vers n’importe quelle destination de résultats et d’ajouter facilement d’autres tests de manière isolée.

Collecteur de métriques

Le collecteur de métriques est un objet spécial dans Tradefed, orthogonal à l'exécution du test. Il permet de collecter des informations à différents moments du cycle de vie du test (par exemple, début et fin du test). Étant donné que le collecteur est découplé du test lui-même, les points peuvent être échangés, ajoutés et supprimés sans avoir à modifier le test lui-même.

Configuration à l'échelle de l'hôte

Cette section décrit les configurations applicables à l'exécution d'une instance Tradefed complète. Ces options affectent le comportement du harnais dans son ensemble afin de s'adapter à différents environnements, par exemple être dans un réseau restreint.

Caractéristiques supplémentaires

Les sections suivantes décrivent l'utilisation générale des objets Tradefed plutôt que des objets Tradefed.

Sharding négocié

Lorsque le corpus de test est volumineux ou prend beaucoup de temps à s’exécuter, il est possible de le répartir sur plusieurs appareils. Nous appelons cette division le sharding . Cette section décrit le fonctionnement du partitionnement et sa configuration.

Détails du partage

Utiliser SL4A

Tradefed prend en charge la couche de script pour Android, SL4A ; il s'agit d'un ensemble d'outils d'automatisation permettant d'appeler des API Android de manière indépendante de la plate-forme.

SL4A avec détails Tradefed

Téléchargement dynamique @option

Dans certains cas, les fichiers nécessaires à un test ou à une opération particulière ne sont pas disponibles localement. Cette fonctionnalité permet à Tradefed d'obtenir ces fichiers à distance sans passer par un fournisseur de build.

Téléchargement dynamique @option