O OmniLab ATS oferece suporte a dispositivos virtuais Cuttlefish que permitem executar testes sem dispositivos Android físicos. O Cuttlefish é adequado para testar funções independentes de hardware. Antes de começar a usar dispositivos virtuais, siga o guia do usuário para instalar o OmniLab ATS.
O OmniLab ATS oferece suporte a dispositivos virtuais em dois modos: local e remoto. A tabela a seguir mostra uma comparação dos dois modos.
Dispositivos virtuais locais | Dispositivos virtuais remotos |
---|---|
Executa em hosts de workers do ATS | É executado em hosts remotos que os hosts de worker do ATS podem acessar por SSH. |
baseado em x86 | Pode ser x86 ou ARM, dependendo da arquitetura dos hosts |
Mais fácil de configurar | Mais complicado de configurar |
Os dispositivos virtuais locais e remotos podem ser ativados de forma independente. Para mais detalhes sobre cada modo, consulte:
Configurar dispositivos virtuais locais
Esta seção descreve as etapas para configurar o OmniLab ATS para dispositivos virtuais locais.
Instalar dependências do Cuttlefish
Execute o comando a seguir para garantir que os módulos do kernel necessários sejam carregados:
sudo modprobe -a kvm tun vhost_net vhost_vsock
Iniciar o OmniLab ATS com dispositivos virtuais locais
Antes de iniciar o OmniLab ATS, verifique se todas as instâncias do Cuttlefish estão interrompidas. O OmniLab ATS inicia e interrompe automaticamente os dispositivos virtuais durante o ciclo de teste, e as instâncias atuais do Cuttlefish entram em conflito com as instâncias gerenciadas pelo OmniLab ATS. Para detalhes sobre como interromper instâncias do Cuttlefish, consulte Interromper o Cuttlefish.
Para ativar dispositivos virtuais locais, execute o seguinte:
mtt start --max_local_virtual_devices N
N
é o número máximo de dispositivos virtuais que o OmniLab ATS pode alocar
simultaneamente. O número padrão é 0.
Se o comando falhar devido à falta de nós de dispositivo, siga as etapas na mensagem de erro para carregar os módulos do kernel. Se o problema persistir, reinicie a máquina.
Configurar dispositivos virtuais remotos
Esta seção descreve as etapas para configurar o OmniLab ATS para dispositivos virtuais remotos.
Instalar dependências do Cuttlefish
Para instalar as dependências do Cuttlefish, siga estas etapas.
Instale os pacotes Debian no host remoto seguindo as etapas em Cuttlefish > Introdução.
Configure o número máximo de dispositivos virtuais no host remoto seguindo estas etapas:
- Edite
/etc/default/cuttlefish-host-resources
com privilégio raiz. - Defina
num_cvd_accounts
como o número máximo de dispositivos virtuais permitidos neste host. - Execute
sudo systemctl restart cuttlefish-host-resources
. - Execute
ifconfig
e verifique o número de interfacescvd-wtap-*
.
- Edite
Criar uma conta SSH
Como o host do OmniLab ATS se conecta ao host remoto por SSH, é necessário preparar uma conta SSH no host remoto. Como o OmniLab ATS manipula os arquivos no diretório HOME, recomendamos que você crie uma conta dedicada.
O host OmniLab ATS requer um par de chaves SSH para fazer login no host remoto sem uma senha. As etapas a seguir descrevem como configurar as chaves SSH:
- Para gerar uma chave privada e uma chave pública, execute
ssh-keygen
no host do OmniLab ATS. - Faça upload e anexe a chave pública a
~/.ssh/authorized_keys
no host remoto.
Se a sua conta SSH for diferente da usada para instalar as dependências do Cuttlefish, para permitir que a conta SSH inicie o Cuttlefish, execute este comando no host remoto:
sudo usermod -aG kvm,cvdnetwork,render $USER
Iniciar o OmniLab ATS com dispositivos virtuais remotos
Antes de iniciar o OmniLab ATS, verifique se todas as instâncias do Cuttlefish estão interrompidas. O ATS do OmniLab inicia e interrompe automaticamente os dispositivos virtuais durante o ciclo de teste, e as instâncias do Cuttlefish atuais entram em conflito com instâncias gerenciadas pelo OmniLab ATS. Para ver detalhes sobre como interromper instâncias do Cuttlefish, consulte Parar o Cuttlefish.
Para melhorar o desempenho, recomendamos configurar o host do OmniLab ATS e o host remoto em uma rede local.
Para ativar dispositivos virtuais remotos, execute este comando no host do OmniLab ATS:
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY
USER
é o nome da conta SSH.
HOST
é o endereço IPv4 do host remoto.
N
é o número máximo de dispositivos virtuais que o OmniLab ATS pode alocar
simultaneamente.
KEY
é o caminho para a chave SSH privada no host ATS do OmniLab.
O comando testa a conexão com o host remoto antes de iniciar o OmniLab ATS.
Se uma mensagem de aviso, como
The specified --remote_virtual_devices and --remote_ssh_key are invalid.
aparecer no console, verifique a configuração do SSH.
Para evitar conflitos de recursos, um host do OmniLab ATS pode se conectar a, no máximo, um host remoto. Vários hosts ATS OmniLab não podem se conectar a um host remoto ao mesmo tempo.
Executar um teste com dispositivos virtuais
Esta seção descreve as etapas para executar um teste em dispositivos virtuais locais ou remotos.
Selecione os dispositivos
Na lista de dispositivos, o OmniLab ATS mostra dispositivos virtuais como marcadores de posição em vez dos números de série reais. Os marcadores de posição são mostrados no formato HOSTNAME:local-virtual-device-ID para dispositivos virtuais locais e remote-virtual-ADDRESS-ID para dispositivos virtuais remotos. Os estados são Disponível ou Alocado. Um marcador no estado Available indica que o dispositivo virtual não está em execução e pode ser alocado para o teste.
Figura 1. Como selecionar dispositivos virtuais
Adicionar ações do dispositivo
Se você selecionar pelo menos um dispositivo virtual, a ação associada a ele será adicionada à lista automaticamente. A ação consiste nos parâmetros necessários do TradeFed e nos recursos de teste para criar dispositivos virtuais.
Figura 2. Ações do dispositivo para dispositivos virtuais locais
Figura 3. Ações para dispositivos virtuais remotos
Definir recursos de teste
Os dispositivos virtuais Cuttlefish exigem três recursos de teste: as ferramentas de máquina
virtual, as imagens e o
Acloud.
Em um build típico do Cuttlefish (por exemplo,
aosp_cf_x86_64_phone
em
ci.android.com), as ferramentas de máquina virtual são empacotadas em cvd-host_package.tar.gz
, e
as imagens estão em aosp_cf_x86_64_phone-img-*.zip
. O binário do Acloud é integrado
ao OmniLab ATS e é compatível com todas as versões do Cuttlefish. O URL de download padrão
do binário do Acloud só precisa ser alterado para fins de depuração.
Figura 4. Testar recursos para dispositivos virtuais
Conferir execuções de teste
Os registros do dispositivo, incluindo kernel.log
, host_log.txt
e launcher.log
, são
coletados na pasta de arquivos de saída. Clique em Conferir arquivos de saída para acessá-los.
Figura 5. Resultados da execução de teste