Continuous Testing y extensión de Datadog CI Azure DevOps

Versión de Visual Studio Marketplace Estado de compilación Licencia

Información general

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.

  1. Instala la extensión de Datadog Continuous Testing del Visual Studio Marketplace en tu organización de Azure.
  2. 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.
  3. 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

NombreRequisitoDescripción
apiKeyobligatorioTu 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.
appKeyobligatorioTu 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.
authenticationTypeobligatorioEl tipo de autenticación que deseas que utilice Datadog, ya sea connectedService o apiAppKeys.
connectedServiceobligatorioEl nombre de la conexión de servicio de Datadog CI a utilizar cuando se usa el tipo de autenticación connectedService.
configPathopcionalLa 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.
datadogSiteopcionalEl sitio de Datadog cuando se utiliza el tipo de autenticación apiAppKeys. Por defecto: datadoghq.com.
failOnCriticalErrorsopcionalFalla el trabajo de CI si no se dispara ningún test, o si los resultados no se pueden obtener de Datadog. Por defecto: false.
failOnMissingTestsopcionalFalla 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.
failOnTimeoutopcionalFalla el trabajo de CI si al menos un test excede el tiempo de espera de test por defecto. Por defecto: true.
filesopcionalPatrón global para detectar los archivos de configuración de los tests de Synthetic. Por defecto: {,!(node_modules)/**/}*.synthetics.json.
jUnitReportopcionalEl nombre de archivo para un informe JUnit si deseas generar uno.
pollingTimeoutopcionalOBSOLETO: 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.
publicIdsopcionalUna 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.
subdomainopcionalEl 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.
testSearchQueryopcionalActiva 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.
variablesopcionalUna 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: