Complete Automotive Tests in a Box (CATBox) é um pacote de código aberto que fornece as estruturas e ferramentas necessárias para agilizar e executar testes automotivos com configuração mínima. CATBox é escalonável e compatível com as ferramentas, infraestrutura e testes que você usa para testar e validar suas implementações do Android Automotive OS (AAOS). Como resultado, você pode fornecer produtos de alta qualidade ao mercado.
Projeto e implementação de CATBox
O conjunto de testes CATBox fornece as ferramentas, estruturas e testes necessários para executar testes funcionais e de desempenho em um dispositivo de destino automotivo e ao usar um dispositivo complementar.
A imagem a seguir ilustra um design de alto nível de um pacote CATBox.
Figura 1. Pacote CATBox
Tradefed
Tradefed é uma estrutura de teste contínuo de código aberto usada para executar testes em dispositivos Android. Para obter detalhes, consulte Visão geral da Federação Comercial .
Estrutura de teste automotivo
CATBox é baseado em uma estrutura de teste automotivo chamada Spectatio , que fornece APIs para testar vários aplicativos em dispositivos automotivos. Ele é construído sobre o UI Automator , uma estrutura de teste de código aberto, que fornece um conjunto de APIs para construir testes de UI que interagem com aplicativos do usuário e do sistema.
Downloads do conjunto de testes CATBox
Andróide 14
Android Automotive 14 é o lançamento do marco de desenvolvimento de codinome U. Use os links a seguir para baixar os conjuntos de testes CATBox para Android 14:
Andróide 12
Android 12 é o lançamento do marco de desenvolvimento de codinome S. Use os links a seguir para baixar os conjuntos de testes CATBox para Android 12:
Android 11
Android 11 é o lançamento do marco de desenvolvimento de codinome R. Use os links a seguir para baixar os conjuntos de testes CATBox para Android 11:
Construir CATBox
Use o comando catbox
build assim que o código Android AOSP estiver disponível na estação de trabalho local.
Para construir o pacote CATBox localmente:
Selecione o Device Target com base na arquitetura do dispositivo e execute o seguinte comando:
lunch <target>
Para construir o CATBox, execute o seguinte comando:
make catbox
Este comando cria o arquivo
android-catbox.zip
no diretório/out/host/linux-x86/catbox
, que pode então ser usado para executar testes.
Configure o ambiente
A configuração do ambiente necessária para executar testes CATBox é semelhante à Configuração do CTS . Para configurar o ambiente, conclua cada uma das tarefas a seguir:
Instale ADB e AAPT .
Instale o JDK. Consulte Kit de desenvolvimento Java para Ubuntu .
Aumente o limite de memória. Consulte Requisitos de armazenamento .
Configure e execute CATBox
Use a estrutura de teste Tradefed para executar os testes em dispositivos Android. Antes de configurar o CATBox, consulte Visão geral da Federação Comercial .
Para configurar e executar o CATBox, consulte as seções abaixo.
Configure o dispositivo
Antes de executar um plano de teste, conclua as etapas a seguir para configurar seu dispositivo:
Certifique-se de ter instalado as versões recentes do Android Debug Bridge (adb) e do Android Asset Packaging Tool (AAPT) , bem como de ter adicionado a localização dessas ferramentas ao caminho do sistema da sua máquina. Para obter 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 de fábrica, vá para Configurações > Sistema > Opções de redefinição > Apagar todos os dados .
Aguarde o dispositivo reiniciar automaticamente.
Certifique-se de que o adb esteja ativado. Para confirmar se o dispositivo está disponível, execute o seguinte comando:
adb devices
Para habilitar o root, execute o seguinte comando:
adb -s DEVICE_SERIAL root
Substitua
DEVICE_SERIAL
pelo ID serial do dispositivo automotivo.Conecte-se ao Wi-Fi.
Extraia o pacote CATBox
Após configurar o dispositivo, descompacte o pacote CATBox e vá para a pasta extraída:
unzip android-catbox.zip
cd android-catbox
Execute testes no CATBox
Para executar o CATBox com os planos de teste do pacote CATBox:
./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL
Substitua DEVICE_SERIAL
pelo ID serial do dispositivo automotivo. Se você tiver vários dispositivos conectados à máquina host, use DEVICE_SERIAL
para distingui-los. Substitua TEST_PLAN_NAME
pelo nome do plano de teste que você deseja executar.
Para obter 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 exibe os planos de testes funcionais disponíveis.
Planos de testes funcionais | Descrição |
---|---|
catbox-functional | Testes funcionais. |
catbox-functional-app-info-setting | Testes funcionais de configuração de informações do aplicativo. |
catbox-functional-admin-user-grant-permissions | Usuário administrador concede permissões para testes funcionais. |
catbox-functional-app-info-setting-ui-elements | Testes funcionais de configuração de informações do aplicativo. |
catbox-functional-appgrid | Testes funcionais de grade de aplicativos. |
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 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 | Configuração de data e hora de testes funcionais. |
catbox-functional-dial | Disque testes funcionais. |
catbox-functional-display-setting | Exibir testes funcionais de configuração. |
catbox-functional-driving-optimized-apps | Testes funcionais de restrição de UX. |
catbox-functional-enable-developers-option | Habilite testes funcionais de opção de desenvolvedor. |
catbox-functional-home | Testes funcionais domésticos. |
catbox-functional-lock-screen | Testes funcionais de tela de bloqueio. |
catbox-functional-mediacenter | Testes funcionais do Media Center. |
catbox-functional-microphone-recent-apps | Testes funcionais de configuração de microfone. |
catbox-functional-microphone-setting | Testes funcionais de configuração de 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ção de rede. |
catbox-functional-notification | Testes funcionais de notificação. |
catbox-functional-privacy-permission-manager | Testes funcionais de configuração de permissão de aplicativo de privacidade. |
catbox-functional-privacy-setting | Testes funcionais de configuração de 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 | Configuração de testes funcionais. |
catbox-functional-settings-location | Configurando 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ção do sistema. |
catbox-functional-systemui | Testes de IU 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 desempenho do CATBox.
Planos de teste de desempenho | Descrição |
---|---|
catbox-performance-cold-app-start-up-dialer | Teste de desempenho de inicialização de aplicativo a frio para discador e telefone. |
catbox-performance-cold-app-start-up-mediacenter | Teste de desempenho de inicialização de aplicativo a frio para Media Center. |
catbox-performance-cold-app-start-up-settings | Teste de desempenho de inicialização fria do aplicativo para configurações. |
catbox-performance-create-and-switch-to-new-guest | Meça a latência para mudar para um novo convidado. |
catbox-performance-create-and-switch-to-new-user | Meça a latência para mudar para um novo usuário não administrador. |
catbox-performance-hot-app-start-up-dialer | Teste de desempenho de inicialização de aplicativo quente para discador e telefone. |
catbox-performance-hot-app-start-up-mediacenter | Teste de desempenho de inicialização de aplicativo quente para Media Center. |
catbox-performance-hot-app-start-up-settings | Teste de desempenho de inicialização de aplicativo 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 desempenho para mídia. |
catbox-performance-jank-media-switch-playback | Teste de desempenho para reprodução de troca de mídia. |
catbox-performance-jank-notifications | Teste de desempenho para Notificações. |
catbox-performance-jank-settings | Teste de desempenho para configurações. |
catbox-performance-switch-to-existing-user | Meça a latência para mudar para um usuário existente. |
Execute o teste do lado do host multidispositivo
A execução de testes no lado do host multidispositivo usa 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
CATBox instala o apk
e então o teste é executado no ambiente de execução correto do Python.
Revise os resultados do teste CATBox
Os resultados dos testes funcionais e de desempenho são salvos em android-catbox/results/latest
.
Tipo de resultado | Localização |
---|---|
Resultado dos testes | test_result.xml |
Detalhes dos testes de falha | test_result_failures_suite.html |
Resultados de métricas de desempenho | /report-log-files/CatboxPerformanceTests.reportlog.json |
Execuções de testes funcionais e de desempenho | /android-catbox/logs/latest |