Architettura TradeFed

Questa sezione descrive il funzionamento interno di Tradefed e le relative relazioni. Per maggiori dettagli, consulta le sottopagine collegate.

Configurazioni di test

Le configurazioni di test in Tradefed sono descritte in formato XML. Comprendere la struttura della configurazione è fondamentale per eseguire e personalizzare i test.

Struttura delle configurazioni TF

Configurazioni TF globali

Un file di configurazione globale è una configurazione XML Tradefed speciale che viene caricata all'avvio di Tradefed tramite la variabile di ambiente TF_GLOBAL_CONFIG. Carica gli oggetti correlati all'ambito dell'istanza Tradefed che influenzeranno il comportamento complessivo dell'ambiente di test.

Dettagli della configurazione globale

Archivio chiavi

Keystore consente l'inserimento di opzioni della riga di comando in Tradefed da un keystore per evitare di fare riferimento al valore direttamente nella riga di comando. Può essere utilizzato per nascondere le password dalla riga di comando recuperandole direttamente dal keystore.

Dettagli dell'archivio chiavi

Gestore dispositivi

Il gestore dei dispositivi è responsabile del monitoraggio dello stato dei dispositivi in un'istanza in esecuzione di Tradefed. Vengono monitorati aspetti come lo stato di allocazione e lo stato online.

scheduler dei comandi di test

Lo strumento di pianificazione dei comandi di test in Tradefed accetta i comandi da eseguire, li associa ai dispositivi e avvia una chiamata di test.

Build provider

Il fornitore di build è il primo passaggio di qualsiasi chiamata di test. Scarica le risorse necessarie per configurare ed eseguire i test (crea immagini, APK di test e altro ancora). Inoltre, fa riferimento a questi in un oggetto BuildInfo che verrà passato al test. Le risorse disponibili localmente possono essere collegate anche nell'oggetto BuildInfo.

Preparatore e pulitore di bersagli

Target preparer offre azioni facoltative che possono essere eseguite per configurare il target in fase di test in un determinato stato, ad esempio il flashing del dispositivo, l'impostazione di determinate proprietà e la connessione alla rete Wi-Fi.

Test runner

Un test runner in Tradefed si riferisce all'oggetto responsabile dell'esecuzione effettiva del test. Runner di test diversi gestiscono l'esecuzione dei test in modi diversi. Ad esempio, un runner di test di strumentazione sarà molto diverso da un runner di test JUnit.

Reporter dei risultati

Il reporter dei risultati in Tradefed si riferisce all'oggetto che invierà i risultati a una destinazione specifica. Ogni implementazione è in genere specializzata per diversi backend dei risultati. Il reporter dei risultati è responsabile della conversione del formato dei risultati di Tradefed nel formato di destinazione.

Questo design flessibile consente a qualsiasi test di generare report per una qualsiasi delle destinazioni dei risultati e di aggiungere facilmente altri test in modo isolato.

Raccolta di metriche

Il raccoglitore di metriche è un oggetto speciale in Tradefed, ortogonale all'esecuzione del test. Consente la raccolta di informazioni in diversi punti del ciclo di vita del test (ad esempio, inizio e fine del test). Poiché il raccoglitore è disaccoppiato dal test stesso, i punti possono essere scambiati, aggiunti e rimossi senza dover modificare il test stesso.

Configurazione a livello di host

Questa sezione descrive le configurazioni applicabili all'esecuzione di un'istanza Tradefed completa. Queste opzioni influiscono sul comportamento dell'intera harness per adattarsi a diversi ambienti, ad esempio una rete con limitazioni.

Altre funzionalità

Le sezioni seguenti descrivono l'utilizzo generale di Tradefed anziché degli oggetti Tradefed.

Sharding di Tradefed

Quando il corpus di test è grande o richiede molto tempo per l'esecuzione, è possibile dividere il test su più dispositivi. Ci riferiamo a questa suddivisione come sharding. Questa sezione descrive come funziona lo sharding e come viene configurato.

Dettagli dello sharding

Utilizzo di SL4A

Tradefed supporta il livello di scripting per Android, SL4A, che è un insieme di strumenti di automazione per chiamare le API Android in modo indipendente dalla piattaforma.

SL4A con dettagli di Tradefed

Download dell'opzione dinamica

In alcuni casi, i file necessari per un test o una particolare operazione non sono disponibili localmente. Questa funzionalità consente a Tradefed di ottenere questi file da una posizione remota senza passare attraverso un fornitore di build.

Download dell'opzione dinamica