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.
Installa i pacchetti Debian sull'host remoto seguendo i passaggi descritti in Cuttlefish > Inizia.
Configura il numero massimo di dispositivi virtuali sull'host remoto seguendo questa procedura:
- Modifica
/etc/default/cuttlefish-host-resources
con privilegio principale. - Imposta
num_cvd_accounts
sul numero massimo di dispositivi virtuali da consentire su questo host. - Esegui
sudo systemctl restart cuttlefish-host-resources
. - Esegui
ifconfig
e verifica il numero di interfaccecvd-wtap-*
.
- Modifica
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:
- Per generare una chiave privata e una chiave pubblica, esegui
ssh-keygen
sull'host ATS. - 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.
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.
Figura 2. Azioni del dispositivo per i dispositivi virtuali locali
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.
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.
Figura 5. Risultati dell'esecuzione del test