O Complete Automotive Tests in a Box (CATBox) é um pacote de código aberto que oferece as estruturas e ferramentas necessárias para simplificar e executar testes automotivos com a 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 as implementações do Android Automotive OS (AAOS). Assim, você pode oferecer produtos de alta qualidade no marketplace.
Design e implementação do CATBox
O conjunto de testes do CATBox fornece as ferramentas, os frameworks e os testes necessários para executar testes funcionais e de desempenho em um dispositivo de destino automotivo 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 teste contínuo de código aberto usado para executar testes em dispositivos Android. Para mais detalhes, consulte a Visão geral do Trade Federation.
Framework de testes automotivos
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 teste de código aberto que fornece 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 é a versão do marco de desenvolvimento com o codinome U. Use os links a seguir para fazer o download dos pacotes de teste do CATBox para o Android 14:
Android 12
O Android 12 é a versão do marco de desenvolvimento com o codinome S. Use os links a seguir para fazer o download dos pacotes de teste do CATBox para o Android 12:
Android 11
O Android 11 é a versão do marco de desenvolvimento com o codinome R. Use os links a seguir para fazer o download dos pacotes de teste do CATBox para o Android 11:
Criar CATBox
Use o comando de build catbox
quando o código do AOSP do 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 abaixo:
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 de ambiente necessária para executar testes do CATBox é semelhante à Configuração do CTS. Para configurar o ambiente, conclua as seguintes tarefas:
Instale o ADB e o AAPT.
Instale o JDK. Consulte Kit de desenvolvimento 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 da 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 o dispositivo:
Verifique se você instalou as versões recentes do Android Debug Bridge (adb) e da Android Asset Packaging Tool (AAPT), além de adicionar o local dessas ferramentas ao caminho do sistema da máquina. Para mais detalhes, consulte ADB e AAPT.
Conecte pelo menos um dispositivo e prepare o dispositivo em teste (DUT, na sigla em inglês) da seguinte maneira:
Para redefinir o dispositivo automotivo para a configuração original, acesse Configurações > Sistema > Redefinir opções > Apagar 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 a raiz, execute este comando:
adb -s DEVICE_SERIAL root
Substitua
DEVICE_SERIAL
pelo ID do dispositivo automotivo.Conecte-se à rede Wi-Fi.
Extrair 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 do dispositivo automotivo. Se você tiver 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 teste funcional | Descrição |
---|---|
catbox-functional |
Testes funcionais. |
catbox-functional-app-info-setting |
Testes funcionais de 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 de 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 Bluetooth Moped. |
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 |
Mostrar testes funcionais de configuração. |
catbox-functional-driving-optimized-apps |
Testes funcionais de restrição de UX. |
catbox-functional-enable-developers-option |
Ativar testes funcionais de opções para desenvolvedores. |
catbox-functional-home |
Testes funcionais do Google 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 para vários usuários. |
catbox-functional-multiuser-system-user |
Testes funcionais para vários usuários. |
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ção de rede. |
catbox-functional-notification |
Testes funcionais de notificação. |
catbox-functional-privacy-permission-manager |
Testes funcionais de configuração de permissões de apps de privacidade. |
catbox-functional-privacy-setting |
Testes funcionais de configuração do microfone. |
catbox-functional-privacy-setting-ui-elements |
Testes funcionais de configuração 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ção de segurança. |
catbox-functional-setting |
Configurar testes funcionais. |
catbox-functional-settings-location |
Configurando testes de local. |
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ção 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 performance | Descrição |
---|---|
catbox-performance-cold-app-start-up-dialer |
Teste de desempenho de inicialização a frio do app para discador e telefone. |
catbox-performance-cold-app-start-up-mediacenter |
Teste de desempenho de inicialização a frio do app para Media Center. |
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 alternar para um novo convidado. |
catbox-performance-create-and-switch-to-new-user |
Meça 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 apps quentes para o discador e o telefone. |
catbox-performance-hot-app-start-up-mediacenter |
Teste de performance de inicialização de apps a quente para o Media Center. |
catbox-performance-hot-app-start-up-settings |
Teste de desempenho de inicialização do app para as configurações. |
catbox-performance-jank-appgrid |
Teste de desempenho para o Appgrid. |
catbox-performance-jank-contact-list |
Teste de desempenho para Contatos. |
catbox-performance-jank-media |
Testes de desempenho para mídia. |
catbox-performance-jank-media-switch-playback |
Teste de desempenho para a reprodução do interruptor de mídia. |
catbox-performance-jank-notifications |
Teste de desempenho para notificações. |
catbox-performance-jank-settings |
Teste de desempenho para as Configurações. |
catbox-performance-switch-to-existing-user |
Medir a latência para alternar para um usuário atual. |
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
correto do Python.
Analisar os resultados do teste do 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 |