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

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:

  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 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:

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:

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

  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 vehículos, ve a Configuración > Sistema > Restablecer opciones > 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 root, ejecuta el siguiente comando:

      adb -s DEVICE_SERIAL root
      

      Reemplaza DEVICE_SERIAL por el ID de serie del dispositivo automotriz.

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