Este producto no es compatible con el sitio Datadog seleccionado. ().
Intenta comenzar con Test Optimization en el Centro de Aprendizaje
Aprende cómo acelerar tus pipelines de CI configurando el monitoreo de pruebas, identificando pruebas inestables y utilizando el Análisis de Impacto de Pruebas para ejecutar solo las pruebas que importan.
Test Optimization proporciona una vista de prueba primero sobre la salud de tu CI al mostrar métricas importantes y resultados de tus pruebas. Puede ayudarte a investigar problemas de rendimiento y fallos de pruebas que son más relevantes para tu trabajo, enfocándose en el código del que eres responsable, en lugar de los pipelines que ejecutan tus pruebas.
Configuración
Selecciona una opción para configurar Test Optimization en Datadog:
Además de las pruebas, Test Optimization proporciona visibilidad sobre toda la fase de pruebas de tu proyecto.
Características soportadas
.NET
Java/JVM‑basado
Javascript
Python
Ruby
Swift
Go
JUnit Xml
Resultados precisos de tiempo/duraciones
Resolución en microsegundos en el tiempo de inicio de la prueba y duración.
Trazas distribuidas en pruebas de integración
Las pruebas que realizan llamadas a servicios externos instrumentados con Datadog muestran la traza distribuida completa en los detalles de su prueba.
Informes basados en agentes
Capacidad para informar información de pruebas a través del Agente de Datadog.
Informes sin agente
Capacidad para informar información de pruebas sin el Agente de Datadog.
Visibilidad a nivel de conjunto de pruebas
Visibilidad sobre todo el proceso de prueba, incluyendo sesión, módulo, conjuntos de pruebas y pruebas.
API manual
Capacidad para crear eventos de CI Visibility programáticamente para frameworks de prueba que no son compatibles con la instrumentación automática de Datadog.
Propietario de código por prueba
Detección automática del propietario de un archivo de prueba basado en el archivo CODEOWNERS.
(parcialmente)
Inicio/final del código fuente
Informe automático de las líneas de inicio y final de una prueba.
(solo inicio)
(solo inicio)
Información de CI y git
Colección automática de metadatos del entorno de git y CI, como proveedor de CI, SHA de commit de git o URL de pipeline.
Carga de metadatos de git
Carga automática de información del árbol de git utilizada para Test Impact Analysis.
Test Impact Analysis *
Capacidad para habilitar Test Impact Analysis, que omite inteligentemente pruebas basadas en la cobertura de código y metadatos de git.
Las pruebas evalúan el comportamiento del código para un conjunto de condiciones dadas. Algunas de esas condiciones están relacionadas con el entorno donde se ejecutan las pruebas, como el sistema operativo o el sistema de ejecución utilizado. El mismo código ejecutado bajo diferentes conjuntos de condiciones puede comportarse de manera diferente, por lo que los desarrolladores suelen configurar sus pruebas para ejecutarse en diferentes conjuntos de condiciones y validar que el comportamiento sea el esperado en todos ellos. Este conjunto específico de condiciones se llama configuración.
En Test Optimization, una prueba con múltiples configuraciones se trata como múltiples pruebas, con una prueba separada para cada configuración. En el caso de que una de las configuraciones falle pero las otras pasen, solo esa combinación específica de prueba y configuración se marca como fallida.
Por ejemplo, supongamos que estás probando un solo commit y tienes una prueba en Python que se ejecuta contra tres versiones diferentes de Python. Si la prueba falla para una de esas versiones, esa prueba específica se marca como fallida, mientras que las otras versiones se marcan como pasadas. Si vuelves a intentar las pruebas contra el mismo commit y ahora la prueba para las tres versiones de Python pasa, la prueba con la versión que falló anteriormente se marca ahora como pasada e inestable, mientras que las otras dos versiones permanecen pasadas, sin detectar inestabilidad.
Atributos de configuración de prueba
Cuando ejecutas tus pruebas con Test Optimization, la biblioteca detecta e informa información sobre el entorno donde se ejecutan las pruebas como etiquetas de prueba. Por ejemplo, el nombre del sistema operativo, como Windows o Linux, y la arquitectura de la plataforma, como arm64 o x86_64, se añaden como etiquetas en cada prueba. Estos valores se muestran en el commit y en las páginas de resumen de ramas cuando una prueba falla o es inestable para una configuración específica pero no para otras.
Las siguientes etiquetas se recopilan automáticamente para identificar configuraciones de prueba, y algunas pueden aplicarse solo a plataformas específicas:
Nombre de la etiqueta
Descripción
os.platform
Nombre del sistema operativo donde se ejecutan las pruebas.
os.family
Familia del sistema operativo donde se ejecutan las pruebas.
os.version
Versión del sistema operativo donde se ejecutan las pruebas.
os.architecture
Arquitectura del sistema operativo donde se ejecutan las pruebas.
runtime.name
Nombre del sistema de ejecución para las pruebas.
runtime.version
Versión del sistema de ejecución.
runtime.vendor
Proveedor que construyó la plataforma de ejecución donde se ejecutan las pruebas.
runtime.architecture
Arquitectura del sistema de ejecución para las pruebas.
device.model
El modelo de dispositivo que ejecuta las pruebas.
device.name
Nombre del dispositivo.
ui.appearance
Estilo de interfaz de usuario.
ui.orientation
Orientación en la que se ejecuta la interfaz de usuario.
ui.localization
Idioma de la aplicación.
Configuraciones de prueba parametrizadas
Cuando ejecutas pruebas parametrizadas, la biblioteca detecta e informa sobre los parámetros utilizados. Los parámetros son parte de la configuración de prueba, por lo que el mismo caso de prueba ejecutado con diferentes parámetros se considera como dos pruebas diferentes en Test Optimization.
Si un parámetro de prueba es no determinista y tiene un valor diferente cada vez que se ejecuta una prueba, cada ejecución de prueba se considera una nueva prueba en Test Optimization. Como consecuencia, algunas características del producto pueden no funcionar correctamente para tales pruebas: historial de ejecuciones, detección de inestabilidad, Test Impact Analysis, y otras.
Algunos ejemplos de parámetros de prueba no deterministas son:
fecha actual
un valor aleatorio
un valor que depende del entorno de ejecución de la prueba (como una ruta de archivo absoluta o el nombre de usuario actual)
un valor que no tiene una representación de cadena determinista (por ejemplo, una instancia de una clase de Java cuyo toString() método no está sobreescrito)
Evita usar parámetros de prueba no deterministas. En caso de que esto no sea posible, algunos marcos de prueba proporcionan una forma de especificar una representación de cadena determinista para un parámetro no determinista (como sobreescribir el nombre de visualización del parámetro).
Configuraciones personalizadas
Hay algunas configuraciones que no pueden ser identificadas y reportadas automáticamente porque pueden depender de variables de entorno, argumentos de ejecución de prueba u otros enfoques que los desarrolladores utilizan. Para esos casos, debe proporcionar los detalles de configuración a la biblioteca para que Test Optimization pueda identificarlos correctamente.
Defina estas etiquetas como parte de la DD_TAGS variable de entorno usando el prefijo test.configuration.
Por ejemplo, las siguientes etiquetas de configuración de prueba identifican una configuración de prueba donde el tiempo de respuesta del disco es lento y la memoria disponible es baja:
Integre Test Optimization con herramientas para informar datos de Code Coverage, mejore las pruebas de navegador con RUM y acceda a información a través de plataformas al agilizar la identificación y resolución de problemas en su ciclo de desarrollo.
When Test Visibility is enabled, the following data is collected from your project:
Test names and durations.
Predefined environment variables set by CI providers.
Git commit history including the hash, message, author information, and files changed (without file contents).
Information from the CODEOWNERS file.
Al crear un dashboard o un notebook, puede utilizar datos de pruebas de CI en su consulta de búsqueda, lo que actualiza las opciones del widget de visualización. Para más información, consulte Dashboards y la documentación de Notebooks.
Alerte sobre datos de pruebas
Cuando esté evaluando pruebas fallidas o inestables, o el rendimiento de una prueba de CI, puede exportar su consulta de búsqueda en el Test Optimization Explorer a un CI Test monitor haciendo clic en el botón Export.