Dispositivi virtuali in Android Test Station

Android Test Station supporta i dispositivi virtuali Cuttlefish che consentono di eseguire test senza dispositivi Android fisici. La seppia è adatta per testare le funzioni indipendenti dall'hardware. Prima di iniziare a utilizzare i dispositivi virtuali, segui la guida dell'utente per installare Android Test Station.

ATS supporta i dispositivi virtuali in due modalità: locale e remota. La tabella seguente mette a confronto le due modalità.

Dispositivi virtuali locali Dispositivi virtuali remoti
Esecuzione su host worker ATS Funziona su host remoti a cui gli host dei worker ATS possono accedere tramite SSH
Basata su x86 Può essere x86 o ARM, a seconda dell'architettura degli host
Configurazione più facile Più complicato da configurare

I dispositivi virtuali locali e remoti possono essere abilitati in modo indipendente. Per maggiori dettagli su ciascuna modalità, consulta:

Configura dispositivi virtuali locali

In questa sezione vengono descritti i passaggi per configurare ATS per i dispositivi virtuali locali.

Installa le dipendenze Cuttlefish

Esegui questo comando per assicurarti che vengano caricati i moduli kernel necessari:

sudo modprobe -a kvm tun vhost_net vhost_vsock

Avvia Android Test Station con dispositivi virtuali locali

Prima di avviare ATS, assicurati che tutte le istanze Cuttlefish siano arrestate. ATS avvia e arresta automaticamente i dispositivi virtuali durante il ciclo di test e le istanze Cuttlefish esistenti entrano in conflitto con quelle gestite da ATS. Per maggiori dettagli sull'arresto delle istanze Seppia, vedi Arrestare Seppia.

Per abilitare i dispositivi virtuali locali, esegui:

mtt start --max_local_virtual_devices N

N è il numero massimo di dispositivi virtuali che ATS può allocare contemporaneamente. Il numero predefinito è 0.

Se il comando non riesce a causa di nodi del dispositivo mancanti, segui i passaggi nel messaggio di errore per caricare i moduli del kernel. Se il problema persiste, riavvia la macchina.

Configura dispositivi virtuali remoti

In questa sezione vengono descritti i passaggi per configurare ATS per i dispositivi virtuali remoti.

Installa le dipendenze Cuttlefish

Per installare le dipendenze Cuttlefish, segui questi passaggi.

  1. Installa i pacchetti Debian sull'host remoto seguendo i passaggi descritti in Cuttlefish > Inizia.

  2. Configura il numero massimo di dispositivi virtuali sull'host remoto seguendo questa procedura:

    1. Modifica /etc/default/cuttlefish-host-resources con privilegio principale.
    2. Imposta num_cvd_accounts sul numero massimo di dispositivi virtuali da consentire su questo host.
    3. Esegui sudo systemctl restart cuttlefish-host-resources.
    4. Esegui ifconfig e verifica il numero di interfacce cvd-wtap-*.

Crea un account SSH

Poiché l'host ATS si connette all'host remoto tramite SSH, devi preparare un account SSH sull'host remoto. Dato che ATS gestisce i file nella directory HOME, ti consigliamo di creare un account dedicato.

L'host ATS richiede una coppia di chiavi SSH per accedere all'host remoto senza password. I passaggi seguenti spiegano come configurare le chiavi SSH:

  1. Per generare una chiave privata e una chiave pubblica, esegui ssh-keygen sull'host ATS.
  2. Carica e aggiungi la chiave pubblica a ~/.ssh/authorized_keys sull'host remoto.

Se il tuo account SSH è diverso da quello utilizzato per installare le dipendenze Cuttlefish, per consentire all'account SSH di avviare Cuttlefish, esegui questo comando sull'host remoto:

sudo usermod -aG kvm,cvdnetwork,render $USER

Avvia ATS con dispositivi virtuali remoti

Prima di avviare ATS, assicurati che tutte le istanze Cuttlefish siano arrestate. ATS avvia e arresta automaticamente i dispositivi virtuali durante il ciclo di test e le istanze Cuttlefish esistenti entrano in conflitto con quelle gestite da ATS. Per maggiori dettagli sull'arresto delle istanze Seppia, vedi Arrestare Seppia.

Per ottenere prestazioni migliori, ti consigliamo di configurare l'host ATS e l'host remoto in una rete locale.

Per abilitare i dispositivi virtuali remoti, esegui questo comando sull'host ATS:

mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY

USER è il nome dell'account SSH.

HOST è l'indirizzo IPv4 dell'host remoto.

N è il numero massimo di dispositivi virtuali che ATS può allocare contemporaneamente.

KEY è il percorso della chiave SSH privata sull'host ATS.

Il comando verifica la connessione all'host remoto prima di avviare ATS. Se viene visualizzato un messaggio di avviso come The specified --remote_virtual_devices and --remote_ssh_key are invalid. sulla console, devi controllare la configurazione SSH.

Per evitare conflitti tra le risorse, un host ATS può connettersi al massimo a un host remoto. Più host ATS non possono connettersi a un host remoto contemporaneamente.

Esegui un test con dispositivi virtuali

Questa sezione descrive i passaggi per eseguire un test su dispositivi virtuali locali o remoti.

Seleziona dispositivi

Nell'elenco dei dispositivi, ATS mostra i dispositivi virtuali come segnaposto anziché i relativi numeri di serie. I segnaposto vengono mostrati nel formato HOSTNAME:local-virtual-device-ID per i dispositivi virtuali locali; remote-virtual-ADDRESS-ID per i dispositivi virtuali remoti. Gli stati sono Disponibile o Allocato. Un segnaposto nello stato Disponibile indica che il dispositivo virtuale non è in esecuzione e può essere allocato per il test.

Seleziona dispositivi virtuali

Figura 1. Selezione dei dispositivi virtuali

Aggiungi azioni dispositivo

Se selezioni almeno un dispositivo virtuale, l'azione del dispositivo associata dovrebbe essere aggiunta automaticamente all'elenco. L'azione consiste dei parametri TradeFed e delle risorse di test richiesti per creare dispositivi virtuali.

Azioni dispositivo virtuale locale

Figura 2. Azioni del dispositivo per i dispositivi virtuali locali

Azioni dispositivo virtuale remoto

Figura 3. Azioni del dispositivo per i dispositivi virtuali remoti

Impostazione delle risorse di test

I dispositivi virtuali Cuttlefish richiedono tre risorse di test: gli strumenti per macchine virtuali, le immagini e Acloud. In una build tipica di Seppia (ad esempio, aosp_cf_x86_64_phone su ci.android.com), gli strumenti per macchine virtuali sono pacchettizzati in cvd-host_package.tar.gz, mentre le immagini sono in aosp_cf_x86_64_phone-img-*.zip. Il programma binario Acloud è integrato in ATS ed è compatibile con tutte le versioni di Cuttlefish. L'URL di download predefinito del programma binario Acloud deve essere modificato solo a scopo di debug.

Risorse per i test dei dispositivi virtuali

Figura 4. Risorse di test per i dispositivi virtuali

Visualizza esecuzioni test

I log del dispositivo, inclusi kernel.log, host_log.txt e launcher.log, vengono raccolti nella cartella del file di output. Fai clic su Visualizza i file di output per vederli.

Risultati dell'esecuzione del test

Figura 5. Risultati dell'esecuzione del test