Continuous Testing et Bitrise

GitHub Release Build Status License

Présentation

Avec l’étape synthetics-test-automation-bitrise-step-run-tests, vous pouvez exécuter des tests Synthetic lors de votre CI Bitrise, afin que toutes vos équipes utilisant Bitrise puissent bénéficier des tests Synthetic à chaque étape du cycle de vie du logiciel.

Pour en savoir plus sur la configuration disponible, consultez la documentation datadog-ci synthetics run-tests.

Configuration

Cette étape n’est pas disponible dans la bibliothèque d’étapes officielle de Bitrise. Pour commencer :

  1. Ajoutez l’URL git suivante à votre workflow. Consultez la documentation officielle de Bitrise pour savoir comment procéder via l’application Bitrise. Vous pouvez également la configurer localement en référençant l’URL git dans votre fichier bitrise.yml.
- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@v3.8.0:
  1. Ajoutez vos clés d’API et d’application à vos secrets dans Bitrise.
  2. Configurez vos entrées d’étape. Vous pouvez également les configurer dans votre fichier bitrise.yml. Les seules entrées requises sont les deux secrets que vous avez configurés précédemment. Pour obtenir une liste complète des entrées, consultez la section Entrées.

Lorsque vous exécutez l’étape en local avec le CLI Bitrise, les secrets doivent être stockés dans un fichier .bitrise.secrets.yml. Consultez la rubrique relative à la gestion des secrets en local.

Utilisation simple

Exemple avec des ID publics

- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@v3.8.0:
   inputs:
   - api_key: <DATADOG_API_KEY>
   - app_key: <DATADOG_APP_KEY>
   - public_ids: |
      abc-d3f-ghi
      jkl-mn0-pqr

Exemple de tâche utilisant des fichiers synthetics.json existants

- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@v3.8.0:
   inputs:
   - api_key: <DATADOG_API_KEY>
   - app_key: <DATADOG_APP_KEY>
   - files: 'e2e-tests/*.synthetics.json'

Pour un exemple de fichier de test, consultez ce fichier test.synthetics.json.

Utilisation complexe

Exemple de tâche utilisant une requête testSearchQuery

- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@v3.8.0:
   inputs:
   - api_key: <DATADOG_API_KEY>
   - app_key: <DATADOG_APP_KEY>
   - test_search_query: 'tag:e2e-tests'

Exemple de tâche utilisant une requête testSearchQuery et des remplacements de variables

- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@v3.8.0:
   inputs:
   - api_key: <DATADOG_API_KEY>
   - app_key: <DATADOG_APP_KEY>
   - test_search_query: 'tag:e2e-tests'
   - variables: |
      START_URL=https://staging.website.com
      PASSWORD=$STAGING_PASSWORD

Exemple de tâche utilisant un remplacement de la configuration globale avec configPath

Cette tâche remplace le chemin vers le fichier global.config.json global.

- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@v3.8.0:
   inputs:
   - api_key: <DATADOG_API_KEY>
   - app_key: <DATADOG_APP_KEY>
   - config_path: './global.config.json'

Exemple incluant toutes les configurations possibles

À titre de référence, voici un exemple de configuration complète :

- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@v3.8.0:
   inputs:
   - api_key: <DATADOG_API_KEY>
   - app_key: <DATADOG_APP_KEY>
   - batch_timeout: 4200000
   - config_path: './global.config.json'
   - datadog_site: 'datadoghq.com'
   - device_ids: |
      apple iphone se (2022),15.4.1
      apple iphone 14 pro,16.1
   - fail_on_critical_errors: true
   - fail_on_missing_tests: true
   - fail_on_timeout: true
   - files: 'e2e-tests/*.synthetics.json'
   - junit_report: 'e2e-test-junit'
   - locations: 'aws:us-west-1'
   - mobile_application_version: '01234567-8888-9999-abcd-efffffffffff'
   - mobile_application_version_file_path: 'path/to/application.apk'
   - public_ids: 'abc-d3f-ghi,jkl-mn0-pqr'
   - selective_rerun: true
   - subdomain: 'myorg'
   - test_search_query: 'tag:e2e-tests'
   - tunnel: true
   - variables: |
      START_URL=https://staging.website.com
      PASSWORD=$STAGING_PASSWORD

Paramètres

Pour en savoir plus sur la configuration disponible, consultez la documentation datadog-ci synthetics run-tests.

NomRôle
api_key(Requis) Votre clé d’API Datadog. Cette clé est créée dans votre organisation Datadog et doit être stockée en tant que secret.
app_key(Requis) Votre clé d’application Datadog. Cette clé est créée dans votre organisation Datadog et doit être stockée en tant que secret.
batch_timeoutSpécifie la durée du délai d’expiration en millisecondes pour le lot CI. Lorsqu’un lot expire, la tâche CI échoue et aucune nouvelle exécution de test n’est déclenchée, mais les exécutions de test en cours se terminent normalement.
Par défaut : 1800000 (30 minutes)
config_pathLe chemin vers le fichier de configuration globale qui configure datadog-ci.
Par défaut : datadog-ci.json
datadog_siteVotre site Datadog. Les valeurs possibles sont répertoriées dans ce tableau.
Par défaut : datadoghq.com

Définissez-le sur (assurez-vous que le SITE correct est sélectionné à droite).
device_idsRemplacer la liste des appareils sur lesquels exécuter les tests Synthetic, séparés par de nouvelles lignes.
Par défaut : aucun
fail_on_critical_errorsFaire échouer la tâche CI si une erreur critique généralement transitoire se produit, telle que des limites de débit, des échecs d’authentification ou des problèmes d’infrastructure Datadog.
Par défaut : false
fail_on_missing_testsFaire échouer la tâche CI si la liste des tests à exécuter est vide ou si certains tests explicitement répertoriés sont manquants.
Par défaut : false
fail_on_timeoutFaire échouer la tâche CI si le batch CI échoue en raison d’un délai d’expiration.
Par défaut : true
filesMotifs glob pour détecter les fichiers de configuration de test Synthetic, séparés par des sauts de ligne.
Par défaut : {,!(node_modules)/**/}*.synthetics.json
junit_reportLe nom de fichier d’un rapport JUnit si vous souhaitez en générer un.
Par défaut : aucun
locationsRemplacer la liste des emplacements à partir desquels exécuter le test, séparés par des sauts de ligne ou des virgules. Les valeurs possibles sont répertoriées dans cette réponse d’API.
Par défaut : aucun
mobile_application_version_file_pathRemplacer la version d’application mobile pour les tests d’application mobile Synthetic par une application locale ou récemment compilée. Vous pouvez utiliser $BITRISE_IPA_PATH ou $BITRISE_APK_PATH de vos étapes de compilation précédentes.
Par défaut : aucun
mobile_application_versionRemplacer la version d’application mobile pour les tests d’application mobile Synthetic. La version doit être téléchargée et disponible dans Datadog. Vous pouvez utiliser l’étape Bitrise pour télécharger une application et utiliser sa sortie DATADOG_UPLOADED_APPLICATION_VERSION_ID ici.
Par défaut : aucun
public_idsID publics des tests Synthetic à exécuter, séparés par des sauts de ligne ou des virgules. Si aucune valeur n’est fournie, les tests sont découverts dans les fichiers de configuration de test Synthetic.
Par défaut : aucun
selective_rerunIndique s’il faut uniquement réexécuter les tests ayant échoué. Si un test a déjà réussi pour un commit donné, il n’est pas réexécuté dans les batchs CI suivants. Par défaut, le paramètre par défaut de votre organisation est utilisé. Définissez-le sur false pour forcer des exécutions complètes lorsque votre configuration l’active par défaut.
Par défaut : aucun
subdomainLe sous-domaine personnalisé permettant d’accéder à votre organisation Datadog. Si l’URL utilisée pour accéder à Datadog est myorg.datadoghq.com, le sous-domaine personnalisé est myorg.
Par défaut : app
test_search_queryUtiliser une requête de recherche pour sélectionner les tests Synthetic à exécuter. Utilisez la barre de recherche de la page de liste des tests Synthetic pour élaborer votre requête, puis copiez-la et collez-la.
Par défaut : aucun
tunnelUtiliser le tunnel Continuous Testing pour lancer des tests contre des environnements internes.
Par défaut : false
variablesRemplacer les variables locales et globales existantes ou injecter de nouvelles variables dans les tests Synthetic sous forme de paires clé-valeur, séparées par des sauts de ligne ou des virgules. Par exemple : START_URL=https://example.org,MY_VARIABLE=My title.
Par défaut : aucun

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles :