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 los parámetros de configuración de TF

Configuración global de TF

Un archivo de configuración global es una configuración especial de XML de Tradefed que se carga cuando Tradefed se inicia mediante 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 inyectar opciones de línea de comandos a 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 recuperando contraseñas directamente del 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 de objetivos

El preparador de objetivos ofrece acciones opcionales que se pueden realizar para configurar el destino que se prueba en un estado determinado, por ejemplo, escribir en la memoria flash del dispositivo, establecer ciertas propiedades y conectarte 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 ejecutores de pruebas impulsan la ejecución de pruebas de maneras distintas. Por ejemplo, un ejecutor de pruebas de instrumentación será muy diferente de un ejecutor de pruebas de JUnit.

Informante 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. Y el generador de informes de resultados se encarga de convertir el formato de resultados de Tradefed al 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 momentos del ciclo de vida de la prueba (por ejemplo, inicio y fin 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 aplicables 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 los objetos Tradefed en lugar de los 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