Continuous Testing y extensión de Datadog CI Azure DevOps
Con Datadog Continuous Testing Azure DevOps Extension, puedes ejecutar tests de Synthetic dentro de tu configuración de pipeline de Azure y asegurarte de que todos tus equipos que utilizan Azure DevOps puedan beneficiarse de los tests de Synthetic en cada etapa del ciclo de vida del software. Puedes ejecutar SyntheticsRunTests
como una tarea.
Autenticación
Conexión del servicio
Para conectarte a tu sitio de Datadog, Datadog recomienda configurar una conexión personalizada al servicio al configurar la tarea de Synthetics Run Test.
Debes proporcionar los siguientes datos:
- Sitio de Datadog: a qué sitio de Datadog conectarte y enviar datos.
- Subdominio personalizado (por defecto:
app
): el nombre del subdominio personalizado establecido para acceder a tu aplicación de Datadog. Si la URL utilizada para acceder a Datadog es myorg.datadoghq.com
, este valor debe establecerse en myorg
. - Clave de API: tu clave de API de Datadog. Esta clave la crea tu organización de Datadog.
- Clave de aplicación: tu clave de aplicación de Datadog. Esta clave la crea tu organización de Datadog.
Claves de API y de aplicación
- Clave de API: tu clave de API de Datadog. Esta clave es creada por tu organización de Datadog y se accede a ella como una variable de entorno.
- Clave de aplicación: tu clave de aplicación de Datadog. Esta clave es creada por tu organización de Datadog y se accede a ella como una variable de entorno.
- Sitio de Datadog: el sitio de Datadog para conectarte y enviar datos.
- Subdominio personalizado (opcional): el nombre del subdominio personalizado establecido para acceder a tu aplicación de Datadog. Si la URL utilizada para acceder a Datadog es
myorg.datadoghq.com
, este valor debe establecerse en myorg
.
Ajustes
Para conectarte a tu cuenta de Datadog, crea una conexión del servicio de Datadog CI en tu proyecto de pipelines de Azure. Una vez creado, todo lo que necesitas es el nombre de la conexión del 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 del servicio de Datadog CI, o como secretos de tu proyecto de pipelines de Azure.
- En tu pipeline de Azure DevOps, utiliza la tarea
SyntheticsRunTests
.
Tu tarea puede ser simple o compleja.
Uso sencillo
Nota: Recientemente hemos cambiado la versión principal de la tarea de SyntheticsRunTests@0
a SyntheticsRunTests@1
.
Esto es NO un cambio de ruptura, sino una alineación entre la versión de la tarea y la versión de la extensión.
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
Nota: Recientemente hemos cambiado la versión principal de la tarea de SyntheticsRunTests@0
a SyntheticsRunTests@1
.
Esto es NO un cambio de ruptura, sino una alineación entre la versión de la tarea y la versión de la extensión.
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 anulaciones 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 anular 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'
Para ver un ejemplo de archivo de configuración global, consulta este archivo global.config.json
.
Entradas
Nombre | Requisito | Descripción |
---|
apiKey | obligatorio | Tu clave de API de Datadog cuando utilices el tipo de autenticación apiAppKeys . Esta clave la crea tu organización de Datadog y debe guardarse como secreto. |
appKey | obligatorio | Tu clave de aplicación de Datadog cuando utilices el tipo de autenticación apiAppKeys . Esta clave la crea tu organización de Datadog y debe guardarse como secreto. |
authenticationType | obligatorio | El tipo de autenticación que deseas que utilice Datadog, ya sea connectedService o apiAppKeys . |
connectedService | obligatorio | El nombre de la conexión de servicio de Datadog CI a utilizar cuando se usa el tipo de autenticación connectedService . |
configPath | opcional | La configuración global de JSON utilizada al lanzar los tests. Para más información, consulta la configuración de ejemplo. Por defecto: datadog-ci.json . |
datadogSite | opcional | El sitio de Datadog cuando se utiliza el tipo de autenticación apiAppKeys . Por defecto: datadoghq.com . |
failOnCriticalErrors | opcional | Falla el trabajo de CI si no se dispara ningún test, o si los resultados no se pueden obtener de Datadog. Por defecto: false . |
failOnMissingTests | opcional | Falla el trabajo de CI si al menos un test especificado con un ID público (usando publicIds o publicados en un archivo de test) falta en una ejecución (por ejemplo, si ha sido borrado programáticamente o en el sitio de Datadog). Por defecto: false . |
failOnTimeout | opcional | Falla el trabajo de CI si al menos un test excede el tiempo de espera de test por defecto. Por defecto: true . |
files | opcional | Patrón global para detectar los archivos de configuración de los tests de Synthetic. Por defecto: {,!(node_modules)/**/}*.synthetics.json . |
jUnitReport | opcional | El nombre de archivo para un informe JUnit si deseas generar uno. |
pollingTimeout | opcional | OBSOLETO: La duración (en milisegundos) tras la cual la tarea deja de sondear los resultados de los tests. En el nivel de CI, los resultados de los tests completados después de esta duración se consideran fallidos. Predeterminado: 30 minutos. |
publicIds | opcional | Una lista de IDs de tests para tests de Synthetic que deseas activar, separada por nuevas líneas o comas. Si no se proporciona ningún valor, la tarea busca archivos con el nombre synthetics.json . |
subdomain | opcional | El nombre del subdominio personalizado establecido para acceder a tu aplicación de Datadog cuando se utiliza el tipo de autenticación apiAppKeys . Si la URL utilizada para acceder a Datadog es myorg.datadoghq.com , este valor debe establecerse en myorg . Por defecto: app . |
testSearchQuery | opcional | Activa los tests correspondientes a una consulta de búsqueda. Esto puede ser útil si estás etiquetando tus configuraciones de test. Para obtener más información, consulta reglas y prácticas recomendadas para nombrar etiquetas. |
variables | opcional | Una lista de variables globales a utilizar para los tests de Synthetic, separada por nuevas líneas o comas. Por ejemplo: START_URL=https://example.org,MY_VARIABLE=My title . Por defecto: [] . |
Leer más
Más enlaces, artículos y documentación útiles: