Continuous Testing et Bitrise

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 :
- 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:
- Ajoutez vos clés d’API et d’application à vos secrets dans Bitrise.
- 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.
| Nom | Rô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_timeout | Spé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_path | Le chemin vers le fichier de configuration globale qui configure datadog-ci. Par défaut : datadog-ci.json |
datadog_site | Votre 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_ids | Remplacer 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_errors | Faire é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_tests | Faire é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_timeout | Faire échouer la tâche CI si le batch CI échoue en raison d’un délai d’expiration. Par défaut : true |
files | Motifs 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_report | Le nom de fichier d’un rapport JUnit si vous souhaitez en générer un. Par défaut : aucun |
locations | Remplacer 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_path | Remplacer 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_version | Remplacer 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_ids | ID 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_rerun | Indique 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 |
subdomain | Le 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_query | Utiliser 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 |
tunnel | Utiliser le tunnel Continuous Testing pour lancer des tests contre des environnements internes. Par défaut : false |
variables | Remplacer 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 :