Synthetics et CI/CD

Cette page explique comment exécuter des tests Synthetic dans vos pipelines d'intégration continue (CI). Si vous souhaitez intégrer vos métriques et données de CI dans des dashboards Datadog, consultez plutôt la section Continuous Integration Visibility.

Présentation

En plus d’exécuter des tests à des intervalles prédéfinis, vous avez la possibilité d’exécuter des tests Synthetic Datadog ponctuellement à l’aide du package @datadog/datadog-ci ou de l’API. Exécutez des tests Synthetic Datadog dans vos pipelines d’intégration continue (CI) pour bloquer le déploiement des branches susceptibles de nuire au bon fonctionnement de votre application en production.

Cette solution vous permet également d’exécuter des tests dans le cadre de votre processus de livraison continue (CD) et d’évaluer l’état de vos applications et services en production dès la fin d’un déploiement. Vous pouvez ainsi détecter les régressions potentielles susceptibles d’avoir un impact sur vos utilisateurs et déclencher automatiquement un rollback si un test critique échoue.

Cette fonctionnalité accélère la correction des problèmes en production en vous permettant dès le départ d’identifier de manière proactive et anticipée les bugs et régressions. Au lieu de perdre leur temps à corriger ces problèmes, vos équipes d’ingénieries peuvent ainsi se concentrer sur des tâches non urgentes.

Pour profiter de ces avantages, consultez les intégrations et utilisez l’API ou le package de l’interface de ligne de commande open source.

Intégrations

Avec Synthetics et les pipelines de CI/CD, vous pouvez exécuter des tests Synthetic sur la plateforme CI de votre choix :


Utiliser l’interface de ligne de commande

Le package @datadog/datadog-ci vous permet d’exécuter des tests Synthetics directement dans votre pipeline de CI/CD.

Pour utiliser le package NPM @datadog/datadog-ci, consultez la section relative à la configuration.

Vous pouvez également déclencher des tests en recherchant des tags. Exemple : "ci": "datadog-ci synthetics run-tests --config fileconfig.json -s 'tag:staging'".

Remarque : cette commande agit comme un argument. Ne l’utilisez pas dans vos fichiers de configuration.

Utiliser l’API

Les endpoints d’API Synthetics vous permettent de lancer des tests à n’importe quelle étape de votre cycle de préproduction et de déploiement, par exemple après un déploiement Canary avec un rollback automatisé.

Grâce aux endpoints d’API, vous pouvez vérifier rapidement qu’un nouveau déploiement n’entraîne pas de nouvelle régression. Consultez la documentation relative aux endpoints Trigger tests from CI/CD pipelines et Get details of batch pour les utiliser dans vos pipelines de CI via cURL ou un client compatible.

Déclencher des tests à partir de pipelines de CI/CD

L’endpoint de déclenchement de tests prend en charge jusqu’à 100 tests par requête.

  • Endpoint : https://api./api/v1/synthetics/tests/trigger/ci.
  • Méthode : POST.
  • Argument : un objet JSON contenant la liste de tous les tests à déclencher et la configuration à appliquer.

Structure de données des requêtes

{
    "tests": [TEST_À_DÉCLENCHER, TEST_À_DÉCLENCHER, ...]
}

Les objets TEST_TO_TRIGGER sont composés du public_id requis pour le test à déclencher, ainsi que des éventuels remplacements de configuration. Pour obtenir la description de chaque champ, consultez la rubrique Configurer des tests.

L’identifiant public d’un test correspond à l’identifiant du test fourni dans l’URL de la page de détails du test (par exemple, pour https://app.datadoghq.com/synthetics/details/abc-def-ghi, l’identifiant est abc-def-ghi) ou à l’URL complète de cette page (c’est-à-dire https://app.datadoghq.com/synthetics/details/abc-def-ghi).

Pour en savoir plus, consultez la documentation relative aux endpoints d’API Synthetics.

Récupérer les détails d’un lot

L’endpoint Get details of batch récupère les résultats du groupe de tests déclenchés dans votre pipeline de CI/CD (également désigné par le terme « batch »). Vous devez fournir le batch_id de l’exécution CI pertinente.

  • Endpoint : https://api./api/v1/synthetics/ci/batch/{batch_id}
  • Méthode : GET.
  • Paramètres : le batch_id du batch de résultats de test à examiner.

Pour en savoir plus, consultez la documentation relative aux endpoints d’API Synthetics.

Pour aller plus loin