O Complete Automotive Tests in a Box (CATBox) é um pacote de código aberto que fornece as estruturas e ferramentas necessárias para simplificar e executar testes automotivos com configuração mínima. O CATBox é escalonável e compatível com as ferramentas, a infraestrutura e os testes que você usa para testar e validar suas implementações do Android Automotive OS (AAOS). Como resultado, você pode oferecer produtos de alta qualidade ao marketplace.
Design e implementação do CATBox
O conjunto de testes CATBox oferece as ferramentas, os frameworks e os testes necessários para executar testes funcionais e de desempenho em um dispositivo automotivo de destino e usando um dispositivo complementar.
A imagem a seguir ilustra um design de alto nível de um pacote CATBox.
Figura 1. Pacote CATBox
Tradefed
O Tradefed é um framework de testes contínuos de código aberto usado para executar testes em dispositivos Android. Para mais detalhes, consulte Visão geral do Trade Federation.
Framework de teste automotivo
O CATBox é baseado em um framework de teste automotivo chamado Spectatio, que fornece APIs para testar vários apps em dispositivos automotivos. Ele é criado com base no UI Automator, um framework de testes de código aberto que oferece um conjunto de APIs para criar testes de IU que interagem com aplicativos do usuário e do sistema.
Downloads do pacote de teste CATBox
Android 14
O Android Automotive 14 é o lançamento do marco de desenvolvimento com o codinome U. Use os links a seguir para baixar pacotes de teste do CATBox para o Android 14:
Android 12
O Android 12 é o lançamento do marco de desenvolvimento com o codinome S. Use os links a seguir para baixar os pacotes de teste do CATBox para o Android 12:
Android 11
O Android 11 é o lançamento do marco de desenvolvimento com o codinome R. Use os links a seguir para baixar os pacotes de teste do CATBox para o Android 11:
Criar CATBox
Use o comando de build catbox
quando o código do AOSP Android estiver disponível na
estação de trabalho local.
Para criar o pacote CATBox localmente:
Selecione o destino do dispositivo com base na arquitetura dele e execute o comando a seguir:
lunch <target>
Para criar o CATBox, execute o seguinte comando:
make catbox
Esse comando cria o arquivo
android-catbox.zip
no diretório/out/host/linux-x86/catbox
, que pode ser usado para executar testes.
Configurar o ambiente
A configuração do ambiente necessária para executar testes do CATBox é semelhante à configuração do CTS. Para configurar o ambiente, conclua cada uma das seguintes tarefas:
Instale o ADB e o AAPT.
Instale o JDK. Consulte Kit de desenvolvimento em Java para Ubuntu.
Aumente o limite de memória. Consulte Requisitos de armazenamento.
Configurar e executar o CATBox
Use o framework de teste Tradefed para executar os testes em dispositivos Android. Antes de configurar o CATBox, consulte a Visão geral do Trade Federation.
Para configurar e executar o CATBox, consulte as seções abaixo.
Configurar o dispositivo
Antes de executar um plano de teste, siga estas etapas para configurar seu dispositivo:
Verifique se você instalou as versões mais recentes do Android Debug Bridge (adb) e do Android Asset Packaging Tool (AAPT), além de ter adicionado o local dessas ferramentas ao caminho do sistema da sua máquina. Para mais detalhes, consulte ADB e AAPT.
Conecte pelo menos um dispositivo e prepare o dispositivo em teste (DUT) da seguinte forma:
Para redefinir o dispositivo automotivo para a configuração original, acesse Configurações > Sistema > Opções de redefinição > Limpar todos os dados.
Aguarde o dispositivo reiniciar automaticamente.
Verifique se o adb está ativado. Para confirmar se o dispositivo está disponível, execute o comando a seguir:
adb devices
Para ativar o root, execute o seguinte comando:
adb -s DEVICE_SERIAL root
Substitua
DEVICE_SERIAL
pelo ID serial do dispositivo automotivo.Conecte-se à rede Wi-Fi.
Extraia o pacote CATBox
Depois de configurar o dispositivo, descompacte o pacote CATBox e acesse a pasta extraída:
unzip android-catbox.zip
cd android-catbox
Executar testes no CATBox
Para executar o CATBox com os planos de teste no pacote CATBox:
./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL
Substitua DEVICE_SERIAL
pelo ID serial do dispositivo automotivo. Se houver vários dispositivos conectados à máquina host, use DEVICE_SERIAL
para diferenciá-los. Substitua
TEST_PLAN_NAME
pelo nome do plano de teste que você quer
executar.
Para conferir a lista mais completa de planos disponíveis, use a linha de comando:
./tools/catbox-tradefed list plans | grep -i catbox
Tipos de planos de teste
A tabela a seguir mostra os planos de teste funcionais disponíveis.
Planos de testes funcionais | Descrição |
---|---|
catbox-functional |
Testes funcionais. |
catbox-functional-app-info-setting |
Testes funcionais da configuração de informações do app. |
catbox-functional-admin-user-grant-permissions |
Testes funcionais de permissões de concessão de usuário administrador. |
catbox-functional-app-info-setting-ui-elements |
Testes funcionais da configuração de informações do app. |
catbox-functional-appgrid |
Testes funcionais da grade de apps. |
catbox-functional-base |
Lista de testes funcionais. |
catbox-functional-bluetooth-audio |
Testes funcionais de áudio Bluetooth. |
catbox-functional-bluetooth-palette |
Testes funcionais da barra de status. |
catbox-functional-bluetooth-tests |
Testes de Bluetooth usando o Mobly. |
catbox-functional-brightness-palette |
Testes funcionais da barra de status. |
catbox-functional-btmoped |
Testes funcionais baseados em ciclomotores Bluetooth. |
catbox-functional-date-time-setting |
Testes funcionais de configuração de data e hora. |
catbox-functional-dial |
Testes funcionais de discagem. |
catbox-functional-display-setting |
Testes funcionais de configurações de exibição. |
catbox-functional-driving-optimized-apps |
Testes funcionais de restrição de UX. |
catbox-functional-enable-developers-option |
Ative os testes funcionais da opção de desenvolvedores. |
catbox-functional-home |
Testes funcionais do Home. |
catbox-functional-lock-screen |
Testes funcionais da tela de bloqueio. |
catbox-functional-mediacenter |
Testes funcionais do Media Center. |
catbox-functional-microphone-recent-apps |
Testes funcionais de configuração do microfone. |
catbox-functional-microphone-setting |
Testes funcionais de configuração do microfone. |
catbox-functional-multiuser |
Testes funcionais multiusuário. |
catbox-functional-multiuser-system-user |
Testes funcionais multiusuário. |
catbox-functional-navigation-bar |
Testes funcionais da barra de navegação. |
catbox-functional-network-palette |
Testes funcionais da barra de status. |
catbox-functional-network-setting |
Testes funcionais de configurações de rede. |
catbox-functional-notification |
Testes funcionais de notificação. |
catbox-functional-privacy-permission-manager |
Testes funcionais da configuração de permissão do app de privacidade. |
catbox-functional-privacy-setting |
Testes funcionais de configuração do microfone. |
catbox-functional-privacy-setting-ui-elements |
Testes funcionais de configurações de privacidade. |
catbox-functional-profile-icon |
Testes funcionais da barra de ícones de perfil. |
catbox-functional-profiles-icon-list |
Testes de lista de ícones de perfis. |
catbox-functional-security-setting |
Testes funcionais de configurações de segurança. |
catbox-functional-setting |
Definir testes funcionais. |
catbox-functional-settings-location |
Definindo testes de localização. |
catbox-functional-sound-setting |
Testes funcionais de configuração de som. |
catbox-functional-status-bar |
Testes funcionais da barra de status. |
catbox-functional-storage-setting |
Testes funcionais de configuração de armazenamento. |
catbox-functional-system-setting |
Testes funcionais de configurações do sistema. |
catbox-functional-systemui |
Testes da interface do sistema. |
catbox-functional-ux-restriction |
Testes funcionais de restrição de UX. |
catbox-functional-ux-restriction-facet-bar |
Testes funcionais de restrição de UX. |
A tabela a seguir lista os planos de teste de performance do CATBox.
Planos de teste de desempenho | Descrição |
---|---|
catbox-performance-cold-app-start-up-dialer |
Teste de desempenho de inicialização a frio do app para o discador e o telefone. |
catbox-performance-cold-app-start-up-mediacenter |
Teste de desempenho de inicialização a frio do app para a Central de mídia. |
catbox-performance-cold-app-start-up-settings |
Teste de desempenho de inicialização a frio do app para configurações. |
catbox-performance-create-and-switch-to-new-guest |
Medir a latência para mudar para um novo visitante. |
catbox-performance-create-and-switch-to-new-user |
Medir a latência para mudar para um novo usuário sem privilégios de administrador. |
catbox-performance-hot-app-start-up-dialer |
Teste de desempenho de inicialização de app quente para o discador e o telefone. |
catbox-performance-hot-app-start-up-mediacenter |
Teste de desempenho de inicialização de app quente para a Central de mídia. |
catbox-performance-hot-app-start-up-settings |
Teste de desempenho de inicialização de app quente para Configurações. |
catbox-performance-jank-appgrid |
Teste de desempenho para Appgrid. |
catbox-performance-jank-contact-list |
Teste de desempenho para contatos. |
catbox-performance-jank-media |
Testes de performance para mídia. |
catbox-performance-jank-media-switch-playback |
Teste de performance para reprodução de troca de mídia. |
catbox-performance-jank-notifications |
Teste de performance para notificações. |
catbox-performance-jank-settings |
Teste de performance para configurações. |
catbox-performance-switch-to-existing-user |
Mede a latência para mudar para um usuário existente. |
Executar o teste do lado do host em vários dispositivos
A execução de testes do lado do host em vários dispositivos usa o CATBox para executar o teste
em uma sessão. Por exemplo, BTDiscoveryTest
:
make catbox
./tools/catbox-tradefed run commandAndExit catbox-functional-bluetooth-tests --{phone}serial <serial> --{auto}serial <serial> --mobly-host:mobly-par-file-name BTDiscoveryTest
O CATBox instala o apk
e, em seguida, o teste é executado no ambiente de execução
do Python correto.
Analisar os resultados do teste CATBox
Os resultados das execuções de testes funcionais e de desempenho são salvos em
android-catbox/results/latest
.
Tipo de resultado | Local |
---|---|
Resultados dos testes | test_result.xml |
Detalhes dos testes de falha | test_result_failures_suite.html |
Resultados das métricas de performance | /report-log-files/CatboxPerformanceTests.reportlog.json |
Execuções de testes funcionais e de desempenho | /android-catbox/logs/latest |