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 automotrices 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 necesarios para ejecutar pruebas funcionales y de rendimiento en un dispositivo objetivo para automóviles 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 de 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 automotrices
CATBox se basa en un framework de pruebas para automóviles llamado Spectatio, que proporciona APIs para probar varias apps en dispositivos para automóviles. Se basa en UI Automator, un framework de prueba 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 el lanzamiento del hito de desarrollo con nombre interno U. Usa los siguientes vínculos para descargar los paquetes de pruebas de CATBox para Android 14:
Android 12
Android 12 es el lanzamiento del hito de desarrollo con nombre interno S. Usa los siguientes vínculos para descargar los paquetes de pruebas de CATBox para Android 12:
Android 11
Android 11 es el lanzamiento del hito de desarrollo con nombre interno R. Usa los siguientes vínculos para descargar los 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 de 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 luego se puede usar para ejecutar pruebas.
Configura el entorno
La configuración del entorno necesaria para ejecutar las pruebas de CATBox es similar a la de cómo configurar el CTS. Para configurar el entorno, completa cada una de las siguientes tareas:
Instala ADB y AAPT.
Instala el JDK. Consulta Java Development Kit 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 pruebas, 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), y de haber agregado la ubicación de estas herramientas a la ruta 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 automóviles, ve a Configuración > Sistema > Opciones de restablecimiento > 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 de administrador, ejecuta el siguiente comando:
adb -s DEVICE_SERIAL root
Reemplaza
DEVICE_SERIAL
por el ID de serie del dispositivo para automóviles.Conéctate a Wi-Fi.
Cómo extraer el paquete de 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 de 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 para automóviles. 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 pruebas que deseas ejecutar.
Para obtener la lista más completa de 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 pruebas funcionales disponibles.
Planes de pruebas funcionales | Descripción |
---|---|
catbox-functional |
Pruebas funcionales |
catbox-functional-app-info-setting |
Pruebas funcionales de la configuración de información sobre la app |
catbox-functional-admin-user-grant-permissions |
Pruebas funcionales de permisos de concesión de usuarios administradores. |
catbox-functional-app-info-setting-ui-elements |
Pruebas funcionales de la configuración de información sobre la app |
catbox-functional-appgrid |
Pruebas funcionales de la cuadrícula de apps |
catbox-functional-base |
Es la 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 ciclomotores Bluetooth |
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 pantalla. |
catbox-functional-driving-optimized-apps |
Pruebas funcionales de restricción de UX. |
catbox-functional-enable-developers-option |
Habilita las pruebas funcionales de las opciones 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 del Centro multimedia |
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 la configuración de red |
catbox-functional-notification |
Pruebas funcionales de notificaciones. |
catbox-functional-privacy-permission-manager |
Pruebas funcionales de la configuración de permisos de la app 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 |
Configurar 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 la 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 pruebas 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 Marcador. |
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 de inicio en frío de la app para la configuración. |
catbox-performance-create-and-switch-to-new-guest |
Medir la latencia para cambiar a un nuevo invitado |
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 de inicio en caliente de la app para el Marcador y el Teléfono. |
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 rápido de la app de Configuración. |
catbox-performance-jank-appgrid |
Prueba de rendimiento para Appgrid. |
catbox-performance-jank-contact-list |
Es una prueba de rendimiento para los contactos. |
catbox-performance-jank-media |
Pruebas de rendimiento para Media. |
catbox-performance-jank-media-switch-playback |
Prueba de rendimiento para la reproducción de cambio de medios. |
catbox-performance-jank-notifications |
Es una prueba de rendimiento para las notificaciones. |
catbox-performance-jank-settings |
Es una prueba de rendimiento para la configuración. |
catbox-performance-switch-to-existing-user |
Mide la latencia para cambiar a un usuario existente. |
Ejecuta la prueba del host para varios dispositivos
La ejecución de pruebas del host en varios dispositivos 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 de Python correcto.
Revisa los resultados de las pruebas 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 de falla | 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 |