Cómo ejecutar pruebas de CTS

Trade Federation es un framework de pruebas continuas para ejecutar pruebas en dispositivos Android. Para ejecutar el Conjunto de pruebas de compatibilidad (CTS), primero lee el Descripción general de la Federación de Comercio para un sobre el marco de pruebas de Tradefed.

Para ejecutar un plan de prueba, haz lo siguiente:

  1. Configurar dispositivos en prueba (DUT) según lo siguiente Configuración de dispositivos Android
  2. 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 esas herramientas a la ruta de acceso del sistema de tu máquina. Para obtener información sobre cómo instalar esas herramientas, consulta Cómo configurar CTS: ADB y AAPT.
  3. Descarga las compilaciones de CTS publicadas en tu máquina anfitrión de Linux y descomprime la compilación en la ubicación del host.
  4. Conecta al menos un dispositivo. Para preparar el DUT, haz lo siguiente:
    • Presiona el botón de inicio para configurar el dispositivo en la pantalla principal.
    • No uses el DUT para ninguna otra tarea.
    • Mantén el DUT en una posición estacionaria para evitar activar la actividad del sensor.
    • Apunta la cámara del dispositivo a un objeto que se pueda enfocar.
    • No presiones ninguna tecla en el dispositivo mientras se esté ejecutando el CTS. Prensado teclas o tocar la pantalla de un DUT interfiere en las pruebas en ejecución y pueden provocar fallas en las pruebas.
  5. Inicia la secuencia de comandos cts-tradefed de la consola de CTS desde la carpeta en la que se descomprimió el paquete de CTS. En la shell de línea de comandos del host, ejecuta el siguiente comando:

    ./android-cts/tools/cts-tradefed
  6. Ejecuta el plan de prueba predeterminado (contiene todos los paquetes de prueba):

    cts-tradefed > run cts
    • Si quieres mejorar el tiempo de ejecución de las pruebas, puedes fragmentar las pruebas en varios dispositivos. La fragmentación requiere que el host se conecte al menos dos dispositivos, pero se recomiendan seis o más para aumentar la eficiencia. Cuando fragmentes más de 1 dispositivo, sucede lo siguiente:

      • En Android 9 y versiones posteriores, usa la opción de comando.

        --shard-count number_of_shards
      • Para Android 8.1 y versiones anteriores, usa la opción de comando

        --shards number_of_shards
    • Si no quieres ejecutar todo el paquete de pruebas, puedes ejecutar el plan de CTS que elijas desde la línea de comandos:

      run cts --plan test_plan_name

      Para encontrar el nombre del plan de prueba, haz lo siguiente:

      • En el caso de Android 7.0 y versiones posteriores, para ver una lista de los módulos de prueba, ingresa

        list modules
      • Para Android 6.0 y versiones anteriores, para ver una lista de los planes de prueba en el repositorio, ingresa

        list plans
      • En el caso de Android 6.0 y versiones anteriores, puedes ver una lista de paquetes de prueba en la repositorio, ingresa

        list packages
    • Para obtener opciones de comandos adicionales según las versiones de CTS, consulta el referencia de los comandos de la consola, o en "ayudar a todos" en la consola de Tradefed.

  7. Ejecuta varias sesiones de reintento hasta que se completen todos los módulos de prueba y los números de fallas de prueba sean los mismos en las últimas dos sesiones de reintento.

    • En Android 9 y versiones posteriores, usa

      run retry --retry session_number --shard-count number_of_shards
    • Para Android 7.0 a 8.1, usa

      run cts --retry session_number --shards number_of_shards
    • Para conocer opciones adicionales del comando Reintentar en función de la versión de CTS, consulte la Consola de comandos de CTS v2.

    • Para comprender los detalles de la implementación del reintento de CTS, consulta Reintento de Trade Federation Suite.

  8. Ejecutar una sesión de reintento solo en las pruebas parametrizadas con errores No se vuelven a intentar las pruebas parametrizadas aprobadas.

    • En Android 11 y versiones posteriores, se habilita la siguiente opción de comando de reintento de forma predeterminada en el comando run cts:

      run retry --retry  --new-parameterized-handling
  9. Consulta el progreso de la prueba y los resultados informados en la consola.

Ejecuta CTS con Android Test Station

Android Test Station es una herramienta de automatización de pruebas que los desarrolladores y los ingenieros de pruebas de Android pueden usar para emplear una interfaz de usuario para ejecutar conjuntos de pruebas estándar. Funciona con el conjunto de pruebas de compatibilidad de Android (CTS).

La herramienta está disponible públicamente a través de Guía del usuario de ATS, y su código es de código abierto en AOSP (multitest_transport, tradefed_cluster).

Cómo ejecutar CTS para modos alternativos

La versión de CTS 10 R4 agrega un plan de prueba para dispositivos con modos alternativos o para dispositivos con más de una pantalla. Ejecuta el plan de prueba de modos alternativos con run cts-foldable

Los casos de prueba aprobados o fallidos para el modo de pantalla alternativo se agregan con el valor de display_mode, por ejemplo, testcase1[display_mode=0].

En CTS 13, la API de DeviceStateManager permite módulos de prueba con lo siguiente de configuración que se ejecute en diferentes estados de un dispositivo plegable. La ejecución de prueba es automática en CTS en función de los estados de plegado de la pantalla definido en el dispositivo sin necesidad de ejecutar el plan de prueba cts-foldable.

<option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" />

Pruebas multidispositivo en CTS

Android 13 y las versiones posteriores admiten pruebas multidispositivo. Las pruebas que requieren varios dispositivos se ejecutan automáticamente durante la ejecución de CTS. CTS 13 incluye algunas pruebas multidispositivo que se activan automáticamente cuando se usa el fragmentación. Si bien las pruebas no requieren cambios adicionales en la configuración física, virtualenv debe instalarse para que las pruebas se ejecuten correctamente. Para obtener más información, consulta Paquetes multidispositivo.

Ejecutar pruebas multidispositivo

Para ejecutar pruebas multidispositivo de forma independiente, usa el siguiente código:

  cts-tradefed > run cts-multidevice
  

Se admiten todas las opciones normales. Para segmentar los anuncios para dispositivos específicos, agrega --serial <serial1> --serial <serial2> y así sucesivamente para la cantidad de dispositivos segmentados.

Para activar automáticamente las pruebas multidispositivo, usa la fragmentación, como en --shard-count 2.