Esta sección describe los aspectos internos de Tradefed y sus relaciones. Consulte las subpáginas vinculadas para obtener más detalles.
1. Configuración de prueba (configuraciones XML)
Visión de conjunto
Las configuraciones de prueba en Tradefed se describen en formato XML. Comprender la estructura de la configuración es clave para ejecutar y personalizar las pruebas.
Estructura de las configuraciones de TF
Configuraciones globales de TF
La 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 inyección de opciones de línea de comando a Tradefed provenientes de un almacén de claves para evitar hacer referencia al valor directamente en la línea de comando. Esto se puede usar para ocultar contraseñas de la línea de comando recuperando contraseñas directamente del almacén de claves.
Detalles del almacén de claves
2. 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 monitorean aspectos como el estado de asignación y el estado en línea.
3. Programador de comandos de prueba
El programador de comandos de prueba en Tradefed toma los comandos para ejecutarlos, los asocia con dispositivos e inicia una invocación de prueba.
4. Proveedor de compilación
Build Provider es el primer paso de cualquier invocación de prueba. Descarga los recursos necesarios para configurar y ejecutar las pruebas (crear imágenes, probar APK y más). También hace referencia a ellos en un objeto BuildInfo
que se pasará a la prueba. Los recursos disponibles localmente también se pueden vincular en el objeto BuildInfo
.
5. Limpiador y preparador de objetivos
Target Preparer ofrece acciones opcionales que se pueden tomar para configurar el objetivo bajo prueba en un estado determinado, por ejemplo, actualizar el dispositivo, configurar ciertas propiedades y conectarse a Wi-Fi.
6. Corredor de pruebas
Un Test Runner en Tradefed se refiere al objeto responsable de la ejecución de la prueba real. Diferentes ejecutores de pruebas impulsan la ejecución de pruebas de diferentes maneras; por ejemplo, un corredor de pruebas de instrumentación será muy diferente de un corredor de pruebas JUnit.
7. Reportero de resultados
Result Reporter en Tradefed se refiere al objeto que enviará los resultados a un destino en particular. Cada implementación suele estar especializada para diferentes back-ends de resultados. Y Result Reporter 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 fácilmente más pruebas de forma aislada.
- Agregar un Reportero de Resultados
- Reportero de resultados y registros
- Resumen del informador de resultados
8. Recopilador de métricas
Metrics Collector es un objeto especial en Tradefed, ortogonal a la ejecución de la prueba. Permite la recopilación de información en diferentes puntos del ciclo de vida de la prueba (por ejemplo, inicio de la prueba, finalización de la prueba). Dado que el colector está desacoplado de la prueba en sí, los puntos se pueden intercambiar, agregar y eliminar sin tener que cambiar la prueba en sí.
9. Configuración de todo el host
Esta sección describe las configuraciones que se aplican a la ejecución de una instancia completa de Tradefed. Estas opciones afectan el comportamiento del arnés como un todo para adaptarse a diferentes entornos, por ejemplo, estar en una red restringida.
10. Características adicionales
Las siguientes secciones describen el uso general de Tradefed en lugar de los objetos Tradefed.
Fragmentación comercializada
Cuando el corpus de prueba es grande o lleva mucho tiempo ejecutarlo, es posible dividirlo en varios dispositivos. Nos referimos a esta división como fragmentación . Esta sección describe cómo funciona la fragmentación y cómo se configura.
Usando SL4A
Tradefed admite la capa de secuencias de comandos para Android, SL4A; este es un conjunto de herramientas de automatización para llamar a las API de Android de manera independiente de la plataforma.
Descarga dinámica @Option
En algunos casos, los archivos necesarios para una prueba o alguna operación en particular no están disponibles localmente. Esta función permite a Tradefed obtener estos archivos desde una ubicación remota sin pasar por un proveedor de compilación.