Pruebas automotrices completas en una caja

Complete Automotive Tests in a Box (CATBox) es un paquete de código abierto que proporciona los marcos y 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 utiliza para probar y validar sus implementaciones del sistema operativo Android Automotive (AAOS). Como resultado, puede ofrecer productos de alta calidad al mercado.

Diseño e implementación de CATBox.

El conjunto de pruebas CATBox proporciona las herramientas, los marcos y las pruebas necesarias para ejecutar pruebas funcionales y de rendimiento en un dispositivo de destino automotriz y mientras se utiliza un dispositivo complementario.

La siguiente imagen ilustra un diseño de alto nivel de un paquete CATBox.

CATBox

Figura 1. Paquete CATBox

comercializado

Tradefed es un marco de pruebas continuas de código abierto que se utiliza para ejecutar pruebas en dispositivos Android. Para obtener más información, consulte Descripción general de la Federación de Comercio .

Marco de pruebas automotrices

CATBox se basa en un marco de pruebas automotrices llamado Spectatio , que proporciona API para probar varias aplicaciones en dispositivos automotrices. Está construido sobre UI Automator , un marco de prueba de código abierto, que proporciona un conjunto de API para crear pruebas de UI que interactúan con las aplicaciones del usuario y del sistema.

Descargas del conjunto de pruebas CATBox

Androide 14

Android Automotive 14 es el lanzamiento del hito de desarrollo con nombre clave U. Utilice los siguientes enlaces para descargar los conjuntos de pruebas CATBox para Android 14:

androide 12

Android 12 es el lanzamiento del hito de desarrollo con nombre en código S. Utilice los siguientes enlaces para descargar los conjuntos de pruebas CATBox para Android 12:

androide 11

Android 11 es el lanzamiento del hito de desarrollo con nombre en código R. Utilice los siguientes enlaces para descargar los conjuntos de pruebas CATBox para Android 11:

Construir CATBox

Utilice el comando catbox build una vez que el código AOSP de Android esté disponible en la estación de trabajo local.

Para construir el paquete CATBox localmente:

  1. Seleccione el destino del dispositivo según la arquitectura del dispositivo y ejecute el siguiente comando:

    lunch <target>
    
  2. Para construir CATBox, ejecute 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 utilizar para ejecutar pruebas.

Configurar el entorno

La configuración del entorno necesaria para ejecutar las pruebas CATBox es similar a la configuración de CTS . Para configurar el entorno, complete cada una de las siguientes tareas:

Configurar y ejecutar CATBox

Utilice el marco de pruebas Tradefed para ejecutar las pruebas en dispositivos Android. Antes de configurar CATBox, consulte la descripción general de la Federación Comercial .

Para configurar y ejecutar CATBox, consulte las secciones siguientes.

Configurar el dispositivo

Antes de ejecutar un plan de prueba, complete los siguientes pasos para configurar su dispositivo:

  1. Asegúrese de haber instalado las versiones recientes de Android Debug Bridge (adb) y de Android Asset Packaging Tool (AAPT) , y de haber agregado la ubicación de estas herramientas a la ruta del sistema de su máquina. Para obtener más información, consulte ADB y AAPT .

  2. Conecte al menos un dispositivo y prepare el dispositivo bajo prueba (DUT) de la siguiente manera:

    1. Para restablecer los valores de fábrica del dispositivo automotriz, vaya a Configuración > Sistema > Opciones de restablecimiento > Borrar todos los datos .

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

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

      adb devices
      
    4. Para habilitar root, ejecute el siguiente comando:

      adb -s DEVICE_SERIAL root
      

      Reemplace DEVICE_SERIAL con el ID de serie del dispositivo automotriz.

    5. Conéctate a Wi-Fi.

Extraiga el paquete CATBox

Después de configurar el dispositivo, descomprima el paquete CATBox y vaya a la carpeta extraída:

unzip android-catbox.zip
cd android-catbox

Ejecutar pruebas en CATBox

Para ejecutar CATBox con los planes de prueba en el paquete CATBox:

./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL

Reemplace DEVICE_SERIAL con el ID de serie del dispositivo automotriz. Si tiene varios dispositivos conectados a la máquina host, use DEVICE_SERIAL para distinguirlos. Reemplace TEST_PLAN_NAME con el nombre del plan de prueba que desea ejecutar.

Para obtener la lista más completa de planes disponibles, use la línea de comando:

./tools/catbox-tradefed list plans | grep -i catbox

Tipos de planes de prueba

La siguiente tabla muestra los planes de pruebas funcionales disponibles.

Planes de pruebas funcionales Descripción
catbox-functional Pruebas funcionales.
catbox-functional-app-info-setting Información de la aplicación configurando pruebas funcionales.
catbox-functional-admin-user-grant-permissions El usuario administrador otorga permisos para pruebas funcionales.
catbox-functional-app-info-setting-ui-elements Información de la aplicación configurando pruebas funcionales.
catbox-functional-appgrid Pruebas funcionales de la grilla de aplicaciones.
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 usando Mobly.
catbox-functional-brightness-palette Pruebas funcionales de la barra de estado.
catbox-functional-btmoped Pruebas funcionales basadas en ciclomotor Bluetooth.
catbox-functional-date-time-setting Pruebas funcionales de configuración de fecha y hora.
catbox-functional-dial Marcar pruebas funcionales.
catbox-functional-display-setting Pruebas funcionales de configuración de pantalla.
catbox-functional-driving-optimized-apps Pruebas funcionales de restricción de UX.
catbox-functional-enable-developers-option Habilite las pruebas funcionales de la opción de desarrolladores.
catbox-functional-home Pruebas funcionales domiciliarias.
catbox-functional-lock-screen Pruebas funcionales de la pantalla de bloqueo.
catbox-functional-mediacenter Pruebas funcionales del Media Center.
catbox-functional-microphone-recent-apps Pruebas funcionales de configuración de micrófonos.
catbox-functional-microphone-setting Pruebas funcionales de configuración de micrófonos.
catbox-functional-multiuser Pruebas funcionales multiusuario.
catbox-functional-multiuser-system-user Pruebas funcionales multiusuario.
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 notificación.
catbox-functional-privacy-permission-manager Pruebas funcionales de configuración de permisos de aplicaciones de privacidad.
catbox-functional-privacy-setting Pruebas funcionales de configuración de micrófonos.
catbox-functional-privacy-setting-ui-elements Pruebas funcionales de configuración de privacidad.
catbox-functional-profile-icon Pruebas funcionales de la barra de iconos de perfil.
catbox-functional-profiles-icon-list Pruebas de lista de iconos de perfiles.
catbox-functional-security-setting Pruebas funcionales de 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 ajuste de sonido.
catbox-functional-status-bar Pruebas funcionales de la barra de estado.
catbox-functional-storage-setting Pruebas funcionales de configuración de almacenamiento.
catbox-functional-system-setting Pruebas funcionales de configuración del sistema.
catbox-functional-systemui Pruebas de interfaz de usuario 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.

La siguiente tabla enumera los planes de prueba de rendimiento de CATBox.

Planes de prueba de rendimiento Descripción
catbox-performance-cold-app-start-up-dialer Prueba de rendimiento de inicio de aplicaciones en frío para Marcador y Teléfono.
catbox-performance-cold-app-start-up-mediacenter Prueba de rendimiento de inicio de aplicación en frío para Media Center.
catbox-performance-cold-app-start-up-settings Prueba de rendimiento de inicio de aplicación en frío para la configuración.
catbox-performance-create-and-switch-to-new-guest Mida la latencia para cambiar a un nuevo invitado.
catbox-performance-create-and-switch-to-new-user Mida la latencia para cambiar a un nuevo usuario que no sea administrador.
catbox-performance-hot-app-start-up-dialer Prueba de rendimiento de inicio de aplicaciones activas para Marcador y Teléfono.
catbox-performance-hot-app-start-up-mediacenter Prueba de rendimiento de inicio de aplicación activa para Media Center.
catbox-performance-hot-app-start-up-settings Prueba de rendimiento de inicio de aplicación activa para Configuración.
catbox-performance-jank-appgrid Prueba de rendimiento para Appgrid.
catbox-performance-jank-contact-list Prueba de rendimiento para Contactos.
catbox-performance-jank-media Pruebas de rendimiento para Medios.
catbox-performance-jank-media-switch-playback Prueba de rendimiento para la reproducción con cambio de medios.
catbox-performance-jank-notifications Prueba de rendimiento para Notificaciones.
catbox-performance-jank-settings Prueba de rendimiento para Configuración.
catbox-performance-switch-to-existing-user Mida la latencia para cambiar a un usuario existente.

Ejecute la prueba del lado del host multidispositivo

La ejecución de pruebas del lado del host multidispositivo utiliza 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 el apk y luego la prueba se ejecuta en el entorno de ejecución correcto de Python.

Revisar los resultados de la prueba CATBox

Los resultados de las 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 métricas de rendimiento /report-log-files/CatboxPerformanceTests.reportlog.json
Ejecuciones de pruebas funcionales y de rendimiento. /android-catbox/logs/latest