Complete Automotive Tests in a Box (CATBox) es un paquete de código abierto que proporciona los frameworks y las herramientas necesarios para optimizar y ejecutar pruebas de la industria automotriz con una configuración mínima. CATBox es escalable y compatible con las herramientas, la infraestructura y las pruebas que usas para probar y validar tus implementaciones del SO Android Automotive (AAOS). Como resultado, puedes proporcionar productos de alta calidad al mercado.
Diseño e implementación de CATBox
El paquete de pruebas de CATBox proporciona las herramientas, los frameworks y las pruebas necesarias para ejecutar pruebas funcionales y de rendimiento en un dispositivo de destino para la industria automotriz y mientras se usa un dispositivo complementario.
En la siguiente imagen, se ilustra un diseño de alto nivel de un paquete de CATBox.
Figura 1: Paquete CATBox
Tradefed
Tradefed es un framework de pruebas continuas de código abierto que se usa para ejecutar pruebas en dispositivos Android. Para obtener más detalles, consulta Descripción general de Trade Federation.
Marco de trabajo de pruebas para la industria automotriz
CATBox se basa en un framework de pruebas de Automotive llamado Spectatio, que proporciona APIs para probar variadas apps en dispositivos para la industria automotriz. Se compila sobre UI Automator, un framework de pruebas de código abierto que proporciona un conjunto de APIs para compilar pruebas de IU que interactúan con aplicaciones del usuario y del sistema.
Descargas del paquete de pruebas de CATBox
Android 14
Android Automotive 14 es la versión del hito de desarrollo con nombre en código U. Usa los siguientes vínculos para descargar los paquetes de pruebas de CATBox para Android 14:
Android 12
Android 12 es la versión del hito de desarrollo con el nombre en código S. Usa los siguientes vínculos para descargar paquetes de pruebas de CATBox para Android 12:
Android 11
Android 11 es la versión del evento importante de desarrollo con nombre en código R. Usa los siguientes vínculos para descargar paquetes de pruebas de CATBox para Android 11:
Compila CATBox
Usa el comando de compilación catbox
una vez que el código de AOSP de Android esté disponible en la estación de trabajo local.
Para compilar el paquete CATBox de forma local, haz lo siguiente:
Selecciona el destino del dispositivo según la arquitectura del dispositivo y ejecuta el siguiente comando:
lunch <target>
Para compilar CATBox, ejecuta el siguiente comando:
make catbox
Este comando crea el archivo
android-catbox.zip
en el directorio/out/host/linux-x86/catbox
, que se puede usar para ejecutar pruebas.
Configura el entorno
La configuración del entorno necesaria para ejecutar pruebas de CATBox es similar a la configuración de CTS. Para configurar el ambiente, completa cada una de las siguientes tareas:
Instala ADB y AAPT.
Instala JDK. Consulta Kit de desarrollo de Java para Ubuntu.
Aumenta el límite de memoria. Consulta los requisitos de almacenamiento.
Configura y ejecuta CATBox
Usa el framework de pruebas de Tradefed para ejecutar las pruebas en dispositivos Android. Antes de configurar CATBox, consulta la descripción general de Trade Federation.
Para configurar y ejecutar CATBox, consulta las siguientes secciones.
Configura el dispositivo
Antes de ejecutar un plan de prueba, completa los siguientes pasos para configurar tu dispositivo:
Asegúrate de haber instalado las versiones recientes de Android Debug Bridge (adb) y Android Asset Packaging Tool (AAPT), así como de haber agregado la ubicación de estas herramientas a la ruta de acceso del sistema de tu máquina. Para obtener más información, consulta ADB y AAPT.
Conecta al menos un dispositivo y prepara el dispositivo en prueba (DUT) de la siguiente manera:
Para restablecer la configuración de fábrica del dispositivo para vehículos, ve a Configuración > Sistema > Restablecer opciones > Borrar todos los datos.
Espera a que el dispositivo se reinicie automáticamente.
Asegúrate de que adb esté habilitado. Para confirmar que el dispositivo está disponible, ejecuta el siguiente comando:
adb devices
Para habilitar el acceso root, ejecuta el siguiente comando:
adb -s DEVICE_SERIAL root
Reemplaza
DEVICE_SERIAL
por el ID de serie del dispositivo automotriz.Conéctate a Wi-Fi.
Extrae el paquete CATBox
Después de configurar el dispositivo, descomprime el paquete de CATBox y ve a la carpeta extraída:
unzip android-catbox.zip
cd android-catbox
Ejecuta pruebas en CATBox
Para ejecutar CATBox con los planes de prueba del paquete CATBox, haz lo siguiente:
./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL
Reemplaza DEVICE_SERIAL
por el ID de serie del dispositivo automotriz. Si tienes varios dispositivos conectados a la máquina host, usa DEVICE_SERIAL
para distinguirlos. Reemplaza TEST_PLAN_NAME
por el nombre del plan de prueba que deseas ejecutar.
Para obtener la lista más completa de los planes disponibles, usa la línea de comandos:
./tools/catbox-tradefed list plans | grep -i catbox
Tipos de planes de prueba
En la siguiente tabla, se muestran los planes de prueba funcionales disponibles.
Planes de pruebas funcionales | Descripción |
---|---|
catbox-functional |
Pruebas funcionales |
catbox-functional-app-info-setting |
Pruebas funcionales de configuración de información de la app |
catbox-functional-admin-user-grant-permissions |
Pruebas funcionales de permisos de otorgamiento de usuarios administradores |
catbox-functional-app-info-setting-ui-elements |
Pruebas funcionales de configuración de información de la app |
catbox-functional-appgrid |
Pruebas funcionales de la cuadrícula de la app |
catbox-functional-base |
Lista de pruebas funcionales. |
catbox-functional-bluetooth-audio |
Pruebas funcionales de audio Bluetooth |
catbox-functional-bluetooth-palette |
Pruebas funcionales de la barra de estado |
catbox-functional-bluetooth-tests |
Pruebas de Bluetooth con Mobly |
catbox-functional-brightness-palette |
Pruebas funcionales de la barra de estado |
catbox-functional-btmoped |
Pruebas funcionales basadas en Bluetooth para ciclomotores |
catbox-functional-date-time-setting |
Pruebas funcionales de configuración de fecha y hora |
catbox-functional-dial |
Pruebas funcionales de marcación |
catbox-functional-display-setting |
Pruebas funcionales de la configuración de la pantalla |
catbox-functional-driving-optimized-apps |
Pruebas funcionales de restricciones de UX |
catbox-functional-enable-developers-option |
Habilita las pruebas funcionales de la opción para desarrolladores. |
catbox-functional-home |
Pruebas funcionales de la casa. |
catbox-functional-lock-screen |
Pruebas funcionales de la pantalla de bloqueo |
catbox-functional-mediacenter |
Pruebas funcionales de Media Center |
catbox-functional-microphone-recent-apps |
Pruebas funcionales de la configuración del micrófono |
catbox-functional-microphone-setting |
Pruebas funcionales de la configuración del micrófono |
catbox-functional-multiuser |
Pruebas funcionales de varios usuarios |
catbox-functional-multiuser-system-user |
Pruebas funcionales de varios usuarios |
catbox-functional-navigation-bar |
Pruebas funcionales de la barra de navegación |
catbox-functional-network-palette |
Pruebas funcionales de la barra de estado |
catbox-functional-network-setting |
Pruebas funcionales de configuración de red |
catbox-functional-notification |
Pruebas funcionales de notificaciones |
catbox-functional-privacy-permission-manager |
Pruebas funcionales de configuración de permisos de apps de privacidad |
catbox-functional-privacy-setting |
Pruebas funcionales de la configuración del micrófono |
catbox-functional-privacy-setting-ui-elements |
Pruebas funcionales de la configuración de privacidad |
catbox-functional-profile-icon |
Pruebas funcionales de la barra de íconos de perfil |
catbox-functional-profiles-icon-list |
Pruebas de la lista de íconos de perfiles. |
catbox-functional-security-setting |
Pruebas funcionales de la configuración de seguridad |
catbox-functional-setting |
Configuración de pruebas funcionales |
catbox-functional-settings-location |
Configuración de pruebas de ubicación |
catbox-functional-sound-setting |
Pruebas funcionales de la configuración de sonido |
catbox-functional-status-bar |
Pruebas funcionales de la barra de estado |
catbox-functional-storage-setting |
Pruebas funcionales de la configuración de almacenamiento |
catbox-functional-system-setting |
Pruebas funcionales de configuración del sistema |
catbox-functional-systemui |
Pruebas de la IU del sistema |
catbox-functional-ux-restriction |
Pruebas funcionales de restricción de UX |
catbox-functional-ux-restriction-facet-bar |
Pruebas funcionales de restricción de UX |
En la siguiente tabla, se enumeran los planes de prueba de rendimiento de CATBox.
Planes de pruebas de rendimiento | Descripción |
---|---|
catbox-performance-cold-app-start-up-dialer |
Prueba de rendimiento del inicio en frío de la app para Teléfono y marcación. |
catbox-performance-cold-app-start-up-mediacenter |
Prueba de rendimiento del inicio en frío de la app para Media Center. |
catbox-performance-cold-app-start-up-settings |
Prueba de rendimiento del inicio en frío de la app para la configuración |
catbox-performance-create-and-switch-to-new-guest |
Mide la latencia para cambiar a un invitado nuevo. |
catbox-performance-create-and-switch-to-new-user |
Mide la latencia para cambiar a un usuario nuevo que no sea administrador. |
catbox-performance-hot-app-start-up-dialer |
Prueba de rendimiento del inicio en caliente de la app para el Teléfono y el Marcador |
catbox-performance-hot-app-start-up-mediacenter |
Prueba de rendimiento del inicio en caliente de la app para Media Center |
catbox-performance-hot-app-start-up-settings |
Prueba de rendimiento del inicio en caliente de la app para Configuración. |
catbox-performance-jank-appgrid |
Prueba de rendimiento de Appgrid. |
catbox-performance-jank-contact-list |
Prueba de rendimiento de Contactos. |
catbox-performance-jank-media |
Pruebas de rendimiento para contenido multimedia |
catbox-performance-jank-media-switch-playback |
Prueba de rendimiento para la reproducción del interruptor de contenido multimedia. |
catbox-performance-jank-notifications |
Prueba de rendimiento de las notificaciones. |
catbox-performance-jank-settings |
Prueba de rendimiento de Configuración. |
catbox-performance-switch-to-existing-user |
Mide la latencia para cambiar a un usuario existente. |
Ejecuta la prueba del host multidispositivo
La ejecución de pruebas del host multidispositivo usa CATBox para ejecutar la prueba en una sesión. Por ejemplo, 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 apk
y, luego, la prueba se ejecuta en el entorno de ejecución correcto de Python.
Revisa los resultados de la prueba de CATBox
Los resultados de las ejecuciones de pruebas funcionales y de rendimiento se guardan en android-catbox/results/latest
.
Tipo de resultado | Ubicación |
---|---|
Resultados de la prueba | test_result.xml |
Detalles de las pruebas fallidas | test_result_failures_suite.html |
Resultados de las métricas de rendimiento | /report-log-files/CatboxPerformanceTests.reportlog.json |
Ejecuciones de pruebas funcionales y de rendimiento | /android-catbox/logs/latest |