Continuous Testing y extensión de Datadog CI Azure DevOps

Con la tarea SyntheticsRunTests
, puedes ejecutar tests Synthetic dentro de la configuración de tu pipeline Azure y garantizar que todos tus equipos que utilizan Azure DevOps puedan beneficiarse de los tests Synthetic en cada etapa del ciclo de vida del software.
Para obtener más información sobre la configuración disponible, consulta la documentación de datadog-ci synthetics run-tests
.
Autenticación
Conexión al servicio
Para conectarte a tu sitio Datadog, Datadog recomienda configurar una conexión personalizada al servicio al configurar la tarea SyntheticsRunTests
.
Debes proporcionar los siguientes datos:
- Sitio Datadog: Tu sitio Datadog. Los valores posibles se muestran en esta tabla.
- Subdominio personalizado (por defecto:
app
): El subdominio personalizado para acceder a tu organización Datadog. Si tu URL es myorg.datadoghq.com
, el subdominio personalizado es myorg
. - Clave de API: Tu clave de API Datadog. Esta clave se crea en tu organización Datadog.
- Clave de aplicación: Tu clave de aplicación Datadog. Esta clave se crea en tu organización Datadog.
Claves de API y de aplicación
- Clave de API: Tu clave de API Datadog. Esta clave se crea en tu organización Datadog y debe almacenarse como secreto.
- Clave de aplicación: Tu clave de aplicación Datadog. Esta clave se crea en tu organización Datadog y debe almacenarse como secreto.
- Sitio Datadog: Tu sitio Datadog. Los valores posibles se muestran en esta tabla.
- Subdominio personalizado (opcional): El subdominio personalizado para acceder a tu organización Datadog. Si tu URL es
myorg.datadoghq.com
, el subdominio personalizado es myorg
.
Configuración
Para conectarte a tu cuenta de Datadog, crea una conexión al servicio Datadog CI en tu proyecto de pipelines de Azure. Una vez creado, todo lo que necesitas es el nombre de la conexión al servicio en las tareas.
- Instala la extensión de Datadog Continuous Testing del Visual Studio Marketplace en tu organización de Azure.
- Añade tu API de Datadog y las claves de la aplicación en la conexión al servicio Datadog CI, o como secretos de tu proyecto de pipelines de Azure.
- En tu pipeline Azure DevOps, utiliza la tarea
SyntheticsRunTests
.
Tu tarea puede ser simple o compleja.
Uso sencillo
Ejemplo de tarea con identificadores públicos
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
connectedService: 'my-datadog-ci-connected-service'
publicIds: |
abc-d3f-ghi
jkl-mn0-pqr
Ejemplo de tarea utilizando los archivos synthetics.json
existentes
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
connectedService: 'my-datadog-ci-connected-service'
files: 'e2e-tests/*.synthetics.json'
Para ver un archivo de test de ejemplo, consulta este archivo test.synthetics.json
.
Ejemplo de tarea que utiliza secretos de pipeline para la autenticación
- task: SyntheticsRunTests@1
inputs:
authenticationType: 'apiAppKeys'
apiKey: '$(DatadogApiKey)'
appKey: '$(DatadogAppKey)'
datadogSite: '$(DatadogSite)'
subdomain: 'myorg'
Uso complejo
Ejemplo de tarea utilizando la testSearchQuery
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
connectedService: 'my-datadog-ci-connected-service'
testSearchQuery: 'tag:e2e-tests'
Ejemplo de tarea que utiliza testSearchQuery
y sobreescritura de variables
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
connectedService: 'my-datadog-ci-connected-service'
testSearchQuery: 'tag:e2e-tests'
variables: |
START_URL=https://staging.website.com
PASSWORD=$(StagingPassword)
Ejemplo de tarea utilizando un archivo de configuración global con configPath
Por defecto, la ruta al archivo de configuración global es datadog-ci.json
. Puedes sobreescribir esta ruta con la entrada config_path
.
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
configPath: './global.config.json'
connectedService: 'my-datadog-ci-connected-service'
Entradas
Para obtener más información sobre la configuración disponible, consulta la documentación de datadog-ci synthetics run-tests
.
Nombre | Descripción |
---|
apiKey | Tu clave de API Datadog. Esta clave se crea en tu organización Datadog y debe almacenarse como secreto. Obligatoria cuando authenticationType == apiAppKeys |
appKey | Tu clave de API Datadog. Esta clave se crea en tu organización Datadog y debe almacenarse como secreto. Obligatoria cuando authenticationType == apiAppKeys |
authenticationType | (Obligatorio) Almacenamiento y recuperación de credenciales. Debe ser apiAppKeys o connectedService |
batchTimeout | Especifica la duración del tiempo de espera en milisegundos para el lote CI. Cuando se agota el tiempo de espera de un lote, el trabajo de CI falla y no se activan nuevas ejecuciones de tests, pero las ejecuciones de tests en curso finalizan normalmente. Por defecto: 1800000 (30 minutos) |
connectedService | El nombre de la conexión al servicio Datadog CI. Obligatorio cuando authenticationType == connectedService |
configPath | La ruta al archivo de configuración global que configura datadog-ci. Por defecto: datadog-ci.json |
datadogSite | Tu sitio Datadog. Los valores posibles se muestran en esta tabla. Por defecto: datadoghq.com
Configúralo como (asegúrate de seleccionar el SITIO correcto a la derecha). |
failOnCriticalErrors | Genera la falla del trabajo de CI si se produce un error crítico que suele ser transitorio, como límites de frecuencia, fallos de autenticación o problemas en la infraestructura Datadog. Por defecto: false |
failOnMissingTests | Genera la falla del trabajo CI si la lista de tests a ejecutar está vacía o si faltan algunos tests explícitamente mencionados. Por defecto: false |
failOnTimeout | Genera la falla del trabajo CI si el lote CI falla debido al tiempo de espera. Por defecto: true |
files | Patrones glob para detectar archivos de configuración de tests Synthetic, separados por nuevas líneas. Por defecto: {,!(node_modules)/**/}*.synthetics.json |
jUnitReport | El nombre de archivo de un informe JUnit, si quieres generar uno. Por defecto: ninguno |
locations | Anula la lista de ubicaciones desde las que ejecutar el test, separadas por nuevas líneas o comas. Los valores posibles se muestran en esta respuesta de API. Por defecto: ninguno |
publicIds | ID públicos de tests Synthetic a ejecutar, separados por nuevas líneas o comas. Si no se proporciona ningún valor, los tests se detectan en los archivos de configuración de tests Synthetic. Por defecto: ninguno |
selectiveRerun | Si solo se vuelven a ejecutar tests fallidos o no. Si un test ya ha aprobado un commit dado, no se vuelve a ejecutar en los siguientes lotes de CI. Por defecto, se utiliza la configuración por defecto de tu organización. Configúrala como false para forzar ejecuciones completas cuando tu configuración lo permite por defecto. Por defecto: ninguno |
subdomain | El subdominio personalizado para acceder a tu organización Datadog cuando authenticationType == apiAppKeys . Si tu URL es myorg.datadoghq.com , el subdominio personalizado es myorg . Por defecto: app |
testSearchQuery | Utiliza una consulta de búsqueda para seleccionar los tests Synthetic que se van a ejecutar. Utiliza la barra de búsqueda de la página con la lista de tests Synthetic para crear tu consulta, y luego cópiala y pégala. Por defecto: ninguno |
variables | Inyecta nuevas variables locales y globales o sobreescribe las existentes en tests Synthetic como pares clave-valor, separadas por nuevas líneas o comas. Por ejemplo: START_URL=https://example.org,MY_VARIABLE=My title . Por defecto: ninguno |
Salidas
Nombre | Descripción |
---|
batchUrl | La URL del lote CI. |
criticalErrorsCount | El número de errores críticos que se han producido durante el lote CI. |
failedCount | El número de resultados que han fallado durante el lote CI. |
failedNonBlockingCount | El número de resultados que han fallado durante el lote CI sin bloquear el CI. |
passedCount | El número de resultados que han sido aprobados durante el lote CI. |
previouslyPassedCount | El número de resultados que han sido aprobados en lotes CI anteriores en el mismo commit. |
testsNotFoundCount | El número de tests que no se han podido encontrar al iniciar el lote CI. |
testsSkippedCount | El número de tests que se han omitido al iniciar el lote CI. |
timedOutCount | El número de resultados que han fallado debido a la superación del tiempo de espera del lote CI. |
rawResults | La matriz synthetics.Result[] , como cadena codificada en JSON. |
Referencias adicionales
Documentación útil adicional, enlaces y artículos: