OmniLab ATS supporta i dispositivi virtuali Cuttlefish che consentono di eseguire test senza dispositivi Android fisici. Cuttlefish è adatto per testare funzioni indipendenti dall'hardware. Prima di iniziare a utilizzare i dispositivi virtuali, segui la guida dell'utente per installare OmniLab ATS.
OmniLab ATS supporta i dispositivi virtuali in due modalità: locale e remota. La tabella seguente offre un confronto delle due modalità.
Dispositivi virtuali locali | Dispositivi virtuali remoti |
---|---|
Esecuzione su host worker ATS | Viene eseguito su host remoti a cui gli host di lavoro ATS possono accedere tramite SSH |
Basato 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 attivati indipendentemente. Per maggiori dettagli su ogni modalità, vedi:
Configurare dispositivi virtuali locali
In questa sezione vengono descritti i passaggi per configurare OmniLab ATS per i dispositivi virtuali locali.
Installa le dipendenze di Cuttlefish
Esegui il seguente comando per assicurarti che i moduli del kernel necessari siano caricati:
sudo modprobe -a kvm tun vhost_net vhost_vsock
Avvia OmniLab ATS con dispositivi virtuali locali
Prima di avviare OmniLab ATS, assicurati che tutte le istanze Cuttlefish siano arrestate. OmniLab ATS avvia e arresta automaticamente i dispositivi virtuali durante il ciclo di test e le istanze Cuttlefish esistenti sono in conflitto con le istanze gestite da OmniLab 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 OmniLab ATS può allocare contemporaneamente. Il numero predefinito è 0.
Se il comando non va a buon fine a causa di nodi del dispositivo mancanti, segui i passaggi indicati 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 OmniLab ATS per i dispositivi virtuali remoti.
Installa le dipendenze di Cuttlefish
Per installare le dipendenze di 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 svolgendo i seguenti passaggi:
- Modifica
/etc/default/cuttlefish-host-resources
con privilegio root. - 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
Creare un account SSH
Poiché l'host OmniLab ATS si connette all'host remoto tramite SSH, devi preparare un account SSH sull'host remoto. Poiché OmniLab ATS manipola i file nella directory HOME, ti consigliamo di creare un account dedicato.
L'host OmniLab ATS richiede una coppia di chiavi SSH per accedere all'host remoto senza una password. I passaggi seguenti spiegano come configurare le chiavi SSH:
- Per generare una chiave privata e una chiave pubblica, esegui
ssh-keygen
sull'host OmniLab ATS. - Carica e accoda la chiave pubblica a
~/.ssh/authorized_keys
sull'host remoto.
Se il tuo account SSH è diverso da quello utilizzato per installare le dipendenze di Cuttlefish, per consentire all'account SSH di avviare Cuttlefish, esegui questo comando sull'host remoto:
sudo usermod -aG kvm,cvdnetwork,render $USER
Avvia OmniLab ATS con dispositivi virtuali remoti
Prima di avviare OmniLab ATS, assicurati che tutte le istanze di Cuttlefish siano arrestate. OmniLab ATS avvia e arresta automaticamente i dispositivi virtuali durante il ciclo di test e le istanze Cuttlefish esistenti sono in conflitto con le istanze gestite da OmniLab ATS. Per informazioni dettagliate sull'arresto delle istanze Cuttlefish, consulta Interrompere Cuttlefish.
Per un rendimento migliore, ti consigliamo di configurare l'host OmniLab ATS e l'host remoto in una rete locale.
Per attivare i dispositivi virtuali remoti, esegui questo comando sull'host OmniLab 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 OmniLab ATS può allocare contemporaneamente.
KEY
è il percorso della chiave SSH privata sull'host OmniLab ATS.
Il comando testa la connessione all'host remoto prima di avviare OmniLab 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 di OmniLab può connettersi al massimo a un host remoto. Più host OmniLab ATS non possono connettersi a un host remoto contemporaneamente.
Eseguire 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, OmniLab ATS mostra i dispositivi virtuali come segnaposto anziché come numeri di serie effettivi. I segnaposto vengono visualizzati nel formato HOSTNAME:ID-dispositivo-virtuale-locale per i dispositivi virtuali locali; INDIRIZZO-ID-dispositivo-virtuale-remoto 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 di dispositivi virtuali
Aggiungere azioni dei dispositivi
Se selezioni almeno un dispositivo virtuale, l'azione del dispositivo associata dovrebbe essere aggiunta automaticamente all'elenco. L'azione è composta dai parametri TradeFed obbligatori e dalle risorse di test per creare dispositivi virtuali.
Figura 2. Azioni del dispositivo per i dispositivi virtuali locali
Figura 3. Azioni del dispositivo per i dispositivi virtuali remoti
Imposta le risorse di test
I dispositivi virtuali Cuttlefish richiedono tre risorse di test: gli strumenti per le macchine virtuali, le immagini e Acloud.
In una tipica build Cuttlefish (ad esempio, aosp_cf_x86_64_phone
su ci.android.com), gli strumenti per le macchine virtuali sono pacchettizzati in cvd-host_package.tar.gz
e le immagini in aosp_cf_x86_64_phone-img-*.zip
. Il programma binario Acloud è integrato
in OmniLab ATS ed è compatibile con tutte le versioni di Cuttlefish. L'URL di download predefinito del file binario Acloud deve essere modificato solo per scopi di debug.
Figura 4. Risorse di test per i dispositivi virtuali
Visualizzare le esecuzioni dei 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 file di output per visualizzarli.
Figura 5. Risultati dell'esecuzione del test