Arquitectura de Tradefed

En esta sección, se describen los elementos 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 Tradefed se inicia 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

El almacén de claves permite la inserción de opciones de línea de comandos en Tradefed provenientes de 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 recuperando contraseñas directamente desde el almacén de claves.

Detalles del almacén de claves

Administrador de dispositivos

El administrador de dispositivos es responsable de realizar 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.

Cómo crear un proveedor

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 (compilación de imágenes, prueba de APKs 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 objetivo

El preparador de destinos ofrece acciones opcionales que se pueden realizar para configurar el objetivo que se está probando en un estado determinado, por ejemplo, actualizar el firmware 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 impulsan 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.

Generador de informes de resultados

El generador de informes de resultados en Tradefed hace referencia al objeto que enviará los resultados a un destino en particular. Por lo general, cada implementación está especializada para diferentes backend de resultados. El generador de informes de resultados se encarga 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 de forma aislada con facilidad.

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, el inicio y el final 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 de todo el host

En esta sección, se describen las configuraciones 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, estar en una red restringida.

Funciones adicionales

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

Divisió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 particionamiento y cómo se configura.

Detalles de la fragmentación

Cómo usar SL4A

Tradefed admite la capa de secuencias de comandos para Android, SL4A, que es un conjunto de herramientas de automatización para llamar a las APIs de Android de forma 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 desde una ubicación remota sin pasar por un proveedor de compilación.

Descarga dinámica de @option