A Android Test Station oferece suporte a dispositivos virtuais Cuttlefish, que permitem executar testes sem dispositivos físicos Android. 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 a Android Test Station.
O ATS oferece suporte a dispositivos virtuais em dois modos: local e remoto. A tabela a seguir fornece uma comparação entre os dois modos.
Dispositivos virtuais locais | Dispositivos virtuais remotos |
---|---|
Executado em hosts de worker do ATS | Executada em hosts remotos que os hosts de worker do ATS podem acessar via 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 detalhes sobre cada modo, consulte:
Configurar dispositivos virtuais locais
Esta seção descreve as etapas para configurar o ATS para dispositivos virtuais locais.
Instalar dependências do Cuttlefish
Execute o comando abaixo para garantir que os módulos necessários do kernel sejam carregados:
sudo modprobe -a kvm tun vhost_net vhost_vsock
Iniciar a Android Test Station com dispositivos virtuais locais
Antes de iniciar o ATS, verifique se todas as instâncias do Cuttlefish estão interrompidas. O ATS inicia e interrompe automaticamente os dispositivos virtuais durante o ciclo de teste, e as instâncias do Cuttlefish entram em conflito com as instâncias gerenciadas pelo ATS. Para saber mais sobre como interromper instâncias do Cuttlefish, consulte Parar o Cuttlefish.
Para ativar dispositivos virtuais locais, execute:
mtt start --max_local_virtual_devices N
N
é o número máximo de dispositivos virtuais que o ATS pode alocar
simultaneamente. O número padrão é 0.
Se o comando falhar devido à ausência de nós do dispositivo, siga as etapas na mensagem de erro para carregar os módulos do kernel. Se continuar falhando, reinicie a máquina.
Configurar dispositivos virtuais remotos
Esta seção descreve as etapas para configurar o 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 > Começar.
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 a permitir 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 ATS se conecta ao host remoto por SSH, você precisa preparar uma conta SSH no host remoto. Como o ATS manipula os arquivos no diretório HOME, recomendamos que você crie uma conta dedicada.
O host do 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 pública, execute
ssh-keygen
no host do ATS. - Faça upload e anexe a chave pública a
~/.ssh/authorized_keys
no host remoto.
Se sua conta SSH for diferente da usada para instalar as dependências do Cuttlefish, execute este comando no host remoto para permitir que ela inicie o Cuttlefish:
sudo usermod -aG kvm,cvdnetwork,render $USER
Iniciar o ATS com dispositivos virtuais remotos
Antes de iniciar o ATS, verifique se todas as instâncias do Cuttlefish estão interrompidas. O ATS inicia e interrompe automaticamente os dispositivos virtuais durante o ciclo de teste, e as instâncias do Cuttlefish entram em conflito com as instâncias gerenciadas pelo ATS. Para saber mais sobre como interromper instâncias do Cuttlefish, consulte Parar o Cuttlefish.
Para melhorar o desempenho, recomendamos configurar o host ATS e o host remoto em uma rede local.
Para ativar dispositivos virtuais remotos, execute este comando no host do 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 ATS pode alocar
simultaneamente.
KEY
é o caminho para a chave SSH privada no host do ATS.
O comando testa a conexão com o host remoto antes de iniciar o ATS.
Se uma mensagem de aviso como The specified --remote_virtual_devices and --remote_ssh_key are invalid.
for exibida no console, verifique a configuração do SSH.
Para evitar conflitos de recursos, um host ATS pode se conectar a, no máximo, um host remoto. Vários hosts ATS 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 ATS mostra dispositivos virtuais como marcadores de posição em vez dos números de série reais. Os marcadores são mostrados no formato de HOSTNAME:local-virtual-device-ID para dispositivos virtuais locais e remote-virtual-ADDRESS-ID para dispositivos virtuais remotos. Os estados são Available ou Alallocate. 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 do dispositivo associado será adicionada à lista automaticamente. A ação consiste nos parâmetros do TradeFed e em recursos de teste necessários para criar dispositivos virtuais.
Figura 2. Ações 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 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 do arquivo de saída. Clique em View Output Files para visualizá-los.
Figura 5. Resultados da execução do teste