Completa pruebas de Automotive en una caja

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.

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:

  1. Selecciona el destino del dispositivo según la arquitectura del dispositivo y ejecuta el siguiente comando:

    lunch <target>
  2. 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:

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:

  1. 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.

  2. Conecta al menos un dispositivo y prepara el dispositivo en prueba (DUT) de la siguiente manera:

    1. 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.

    2. Espera a que el dispositivo se reinicie automáticamente.

    3. Asegúrate de que adb esté habilitado. Para confirmar que el dispositivo está disponible, ejecuta el siguiente comando:

      adb devices
    4. 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.

    5. 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