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.
- Cómo agregar un nuevo preparador o limpiador de objetivos
- Cómo agregar un nuevo preparador de objetivos múltiples
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.
- Cómo agregar un reportero de resultados
- Registros y reportero de resultados
- Resumen del reportero de resultados
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.
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.
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.