O app Cloud Orchestration oferece uma maneira escalonável e de alta performance para gerenciar instâncias do Cuttlefish, principalmente para dispositivos virtuais baseados em ARM (CHD). O OmniLab ATS é compatível com o Cloud Orchestration para que você possa executar testes em dispositivos virtuais. Antes de começar a usar dispositivos virtuais, siga as instruções da OmniLab Android Test Station para instalar o OmniLab ATS.
Visão geral
O Cloud Orchestration permite que o OmniLab ATS delegue o gerenciamento de instâncias do Cuttlefish a um serviço dedicado do Cloud Orchestrator. Essa abordagem oferece várias vantagens em relação aos modos local e remoto, preservando uma experiência do usuário familiar:
- Inicialização de instâncias paralelas:permite iniciar várias instâncias do Cuttlefish simultaneamente, reduzindo significativamente o tempo de sobrecarga antes do início dos testes.
- Escalonabilidade:adequado para ambientes de teste em grande escala.
- Isolamento de recursos:desvincula o ambiente de execução do teste (trabalhador do ATS) do ambiente de emulação de dispositivos.
Pré-requisitos
- Uma máquina host capaz de executar o Docker
- Acesso às imagens do Docker de orquestração do Cuttlefish
Configurar o serviço do Cloud Orchestrator
O serviço do Cloud Orchestrator gerencia o ciclo de vida das instâncias do Cuttlefish. É possível implantar o serviço em vários ambientes, e ele oferece suporte às arquiteturas x86 e ARM:
- Mesmo host que o trabalhador do ATS:é executado em um contêiner do Docker na mesma máquina
- Máquina separada:é executado em um servidor local capaz de executar o Docker
- Instância de nuvem:é executado em uma máquina virtual em um ambiente de nuvem, por exemplo, o Google Compute Engine
Instalar e configurar o serviço
Siga o README do Cloud Android Orchestration para iniciar o serviço.
Autenticação e permissões
Se o serviço do Cloud Orchestrator estiver em execução em uma máquina remota, verifique se o host do worker do ATS tem as permissões necessárias para acessá-lo por solicitações HTTP. Se a conexão HTTP não for permitida, talvez seja necessário configurar o encaminhamento de porta SSH. Para mais detalhes, consulte Testar o orquestrador de nuvem.
Estado esperado
Depois que o serviço do Cloud Orchestrator for iniciado, ele poderá ser acessado usando HTTP. Para verificar o estado, consulte a API dele:
- Ping no serviço:é possível acessar o endpoint do serviço no host do trabalhador do OmniLab ATS. Por exemplo, executar
curl -I http://localhost:8080/v1/zones/local/hostsretorna uma resposta HTTP bem-sucedida (HTTP/1.1 200 OKou um redirecionamento302 Foundpara/username), confirmando que o serviço está ativo e acessível.
Configurar o OmniLab ATS para o Cloud Orchestration
Antes de iniciar o OmniLab ATS, verifique se todas as instâncias do Cuttlefish no host do trabalhador do OmniLab ATS estão interrompidas. O OmniLab ATS inicia e interrompe automaticamente os dispositivos virtuais durante o ciclo de testes, e as instâncias do Cuttlefish atuais entram em conflito com as instâncias gerenciadas pelo OmniLab ATS. Para mais detalhes sobre como interromper instâncias do Cuttlefish, consulte Interromper o Cuttlefish.
Para ativar o Cloud Orchestration no OmniLab ATS, transmita flags específicas ao iniciar o OmniLab ATS:
mtt start --use_cloud_orchestrator \
--cloud_orchestrator_service_url=http://HOST:PORT \
--max_local_virtual_devices N \
--use_host_network--use_cloud_orchestrator: ativa o recurso do Cloud Orchestration.--cloud_orchestrator_service_url: especifica o URL em que o serviço do Cloud Orchestrator está escutando, por exemplo,http://localhost:8080.--max_local_virtual_devices: define o número máximo de dispositivos virtuais que o OmniLab ATS pode alocar simultaneamente. O número padrão é 0.--use_host_network: usa o namespace de rede do host para o contêiner. Isso é necessário para acessar o serviço do Cloud Orchestrator.
Executar um teste com dispositivos orquestrados na nuvem
Esta seção descreve as etapas para executar um teste em dispositivos virtuais orquestrados na nuvem.
Dispositivos selecionados
Na lista de dispositivos, o OmniLab ATS mostra dispositivos virtuais orquestrados na nuvem como marcadores de posição em vez dos números de série reais. Os marcadores de posição são mostrados
no formato de HOSTNAME:PORT (por exemplo,
thehostname:6520). Os estados são Disponível ou Alocado. Um marcador de posição no estado Disponível indica que o dispositivo virtual não está em execução e pode ser alocado para o teste.
Figura 1. Selecionar dispositivos virtuais orquestrados na nuvem.
Adicionar ações do dispositivo
Quando um teste é programado nesses dispositivos, o ATS adiciona automaticamente as ações necessárias do dispositivo para provisionar e gerenciar as instâncias do Cuttlefish durante o ciclo de testes.
Figura 2. Ações automáticas do dispositivo.
Definir recursos de teste
Ao programar um teste, é necessário fornecer os recursos de teste necessários. Na seção Definir recursos de teste, verifique se você mapeou os arquivos enviados para os nomes de recursos corretos:
- Mapeie o pacote de ferramentas do host, por exemplo,
cvd-host_package.tar.gz, para o nomecvd_host_package. - Mapeie o arquivo ZIP da imagem do dispositivo para o nome
cvd_device_image.
Figura 3. Mapeamento de recursos de teste.
Ver execuções e registros de teste
Depois que o teste for concluído, você poderá conferir os registros na seção de arquivos de saída. Os registros específicos coletados para instâncias gerenciadas pelo Cloud Orchestrator incluem:
launcher.log: registros do inicializador do Cuttlefishkernel.log: registro padrão do kernel do Android