Arquitectura de Tradefed

En esta sección, se describen los aspectos internos de Tradefed y sus relaciones. Consulta las subpáginas vinculadas para obtener más detalles.

Configuraciones de prueba

Las configuraciones de prueba en Tradefed se describen en formato XML. Comprender la estructura de la configuración es clave para ejecutar y personalizar pruebas.

Estructura de las configuraciones de TF

Configuraciones globales de TF

Un archivo de configuración global es una configuración XML especial de Tradefed que se carga cuando se inicia Tradefed a través de la variable de entorno TF_GLOBAL_CONFIG. Carga objetos relacionados con el alcance de la instancia de Tradefed que afectarán el comportamiento general del arnés.

Detalles de la configuración global

Almacén de claves

Keystore permite la inserción de opciones de línea de comandos en Tradefed desde un almacén de claves para evitar hacer referencia al valor directamente en la línea de comandos. Esto se puede usar para ocultar contraseñas de la línea de comandos recuperándolas directamente del almacén de claves.

Detalles del almacén de claves

Administrador de dispositivos

El administrador de dispositivos es responsable de hacer un seguimiento del estado de los dispositivos en una instancia en ejecución de Tradefed. Se supervisan aspectos como el estado de asignación y el estado en línea.

Programador de comandos de prueba

El programador de comandos de prueba en Tradefed toma comandos para ejecutar, los asocia con dispositivos y comienza una invocación de prueba.

Proveedor de compilación

El proveedor de compilación es el primer paso de cualquier invocación de prueba. Descarga los recursos necesarios para configurar y ejecutar las pruebas (imágenes de compilación, APKs de prueba y mucho más). También hace referencia a ellos en un objeto BuildInfo que se pasará a la prueba. Los recursos disponibles de forma local también se pueden vincular en el objeto BuildInfo.

Preparador y limpiador de objetivos

El preparador de destino ofrece acciones opcionales que se pueden realizar para configurar el destino en prueba en un estado determinado, por ejemplo, escribir la imagen del dispositivo, establecer ciertas propiedades y conectarse a Wi-Fi.

Ejecutor de pruebas

Un ejecutor de pruebas en Tradefed hace referencia al objeto responsable de la ejecución real de la prueba. Los diferentes ejecutores de pruebas controlan la ejecución de pruebas de diferentes maneras. Por ejemplo, un ejecutor de pruebas de instrumentación será muy diferente de un ejecutor de pruebas de JUnit.

Reportero de resultados

El reportero de resultados en Tradefed hace referencia al objeto que enviará los resultados a un destino en particular. Por lo general, cada implementación se especializa en diferentes back-ends de resultados. El encargado de informar los resultados es responsable de convertir el formato de resultados de Tradefed en el formato de destino.

Este diseño flexible permite que cualquier prueba informe a cualquiera de los destinos de resultados y que se agreguen más pruebas fácilmente de forma aislada.

Recopilador de métricas

El recopilador de métricas es un objeto especial en Tradefed, ortogonal a la ejecución de la prueba. Permite recopilar información en diferentes puntos del ciclo de vida de la prueba (por ejemplo, inicio y finalización de la prueba). Dado que el recopilador está desacoplado de la prueba en sí, los puntos se pueden intercambiar, agregar y quitar sin tener que cambiar la prueba.

Configuración para todo el host

En esta sección, se describen los parámetros de configuración que se aplican a la ejecución de una instancia completa de Tradefed. Estas opciones afectan el comportamiento del arnés en su totalidad para adaptarse a diferentes entornos, por ejemplo, en una red restringida.

Funciones adicionales

En las siguientes secciones, se describe el uso general de Tradefed, en lugar de los objetos de Tradefed.

Fragmentación de Tradefed

Cuando el corpus de prueba es grande o tarda mucho en ejecutarse, es posible dividirlo en varios dispositivos. Nos referimos a esta división como fragmentación. En esta sección, se describe cómo funciona el sharding y cómo se configura.

Detalles de la fragmentación

Cómo usar SL4A

Tradefed admite la capa de scripting para Android, SL4A, que es un conjunto de herramientas de automatización para llamar a las APIs de Android de manera independiente de la plataforma.

SL4A con detalles de Tradefed

Descarga dinámica de @option

En algunos casos, los archivos que necesita una prueba o alguna operación en particular no están disponibles de forma local. Esta función permite que Tradefed obtenga estos archivos de una ubicación remota sin pasar por un proveedor de compilación.

Descarga dinámica de @option