Vue d'ensemble
L'API Thunders fournit un point de terminaison puissant pour l'exécution de tests automatisés basés sur le navigateur. Ce document explique comment utiliser le point de terminaison /api/test-cases/run ou /api/test-sets/run, qui vous permet de déclencher l'exécution des cas de test de manière programmatique, y compris par le biais des flux de travail GitHub Actions.
Points de terminaison de l'API
POST <https://api.thunders.ai/api/test-cases/run>
POST <https://api.thunders.ai/api/test-sets/run>
Authentification
L'API nécessite une authentification à l'aide d'un jeton Bearer :
Authorization: Bearer YOUR_THUNDER_TEST_TOKEN
Vous devez obtenir un jeton API valide auprès de la plateforme Thunders. Ce jeton doit être stocké de manière sécurisée en tant que secret dans votre environnement ou votre dépôt GitHub.
En-têtes
En-tête | Valeur | Description |
|
| Jeton d'authentification |
|
| Indique un appel API machine-à-machine |
|
| Spécifie le format du corps de la requête |
Corps de la requête pour l'exécution du scénario de test
Le corps de la requête doit être un objet JSON avec les paramètres indiqués ci-dessous.
Exemple
{
"ProjectId": "c8e34ec4-2464-43c7-8db8-1b3a47a22337",
"TestCaseIds": ["a836fadc-377a-46fe-96b0-21f37c626bf9", "61015c47-612f-47fa-82a6-41d910832c1b", "8eea2fd3-da6d-4434-a310-176be84c5646"],
"EnvironmentId": "eca24252-e566-40a8-b2b0-707b7efa85d8",
"PersonaId": "70d0ac52-fe94-4d89-aba9-8ef28dd8c04c",
"BrowserSettings": {
"Location": "ParisSelfHosted",
"Resolution": "1440x900",
"DeviceType": "Desktop"
}
}Paramètres
Paramètre | Type | Obligatoire | Valeur par défaut | Description |
|
| Oui | - | Identifiant unique du projet contenant les cas de test. |
|
| Oui | - | Tableau des identifiants des cas de test à exécuter. |
|
| Oui | - | Identifiant unique de l'environnement à utiliser. |
|
| Oui | - | Identifiant unique du persona à utiliser lors de l'exécution des tests |
|
| Non | 4 | Nombre de tests pouvant être exécutés en parallèle Ce nombre ne dépassera pas la capacité de votre offre 0 signifie : maximal |
|
| Non | 0 | Les tests doivent-ils être réessayés s'ils échouent ? Valeurs valides : 0 à 3 |
|
| Non |
| Cluster de géolocalisation pour la session du navigateur. |
|
| Non |
| Type de navigateur à utiliser pour l'exécution du test |
|
| Non |
| Type d'appareil à émuler pendant l'exécution du test |
|
| Non |
| Résolution de la fenêtre d'affichage du navigateur en pixels, au format « largeurxhauteur » |
|
| Non |
| Active ou désactive l'exécution de JavaScript dans le navigateur. Notez que certaines étapes de test nécessitent que cette option soit définie sur true. |
|
| Non |
| Met en surbrillance l'élément cible de chaque action. |
|
| Non |
| Indique s'il faut ignorer les erreurs HTTPS pendant la navigation. |
|
| Non |
| Activer ou désactiver le thème sombre pour le navigateur |
|
| Non |
| Activer les mesures visant à éviter la détection des bots pendant l'exécution des tests |
|
| Non | - | Facteur d'échelle pour l'écran de l'appareil |
|
| Non | - | Forcer un schéma de couleurs spécifique pour les tests d'accessibilité |
|
| Non | - | Paramètre de langue du navigateur (par exemple, « en-US », « fr-FR ») |
|
| Non | - | Nom d'utilisateur pour l'authentification |
|
| Non | - | Mot de passe pour l'authentification |
|
| Non | - | Configuration du serveur proxy |
|
| Non | - | En-têtes HTTP personnalisés à inclure dans les requêtes |
Corps de la requête pour l'exécution du jeu de tests
Le corps de la requête doit être un objet JSON avec les paramètres répertoriés ci-dessous.
Exemple
{
"ProjectId": "c8e34ec4-2464-43c7-8db8-1b3a47a22337",
"TestSetIds": ["a836fadc-377a-46fe-96b0-21f37c626bf9", "61015c47-612f-47fa-82a6-41d910832c1b", "8eea2fd3-da6d-4434-a310-176be84c5646"],
"EnvironmentId": "eca24252-e566-40a8-b2b0-707b7efa85d8",
"PersonaId": "70d0ac52-fe94-4d89-aba9-8ef28dd8c04c",
"BrowserSettings": {
"Location": "SanFrancisco",
"Resolution": "1440x900",
"browserType": "Firefox"
}
}Paramètres
Paramètre | Type | Obligatoire | Par défaut | Description |
|
| Oui | - | Identifiant unique du projet contenant les cas de test. |
|
| Oui | - | Tableau des identifiants des ensembles de tests à exécuter. |
|
| Oui | - | Identifiant unique de l'environnement à utiliser. |
|
| Oui | - | Identifiant unique du persona à utiliser lors de l'exécution des tests |
|
| Non | 4 | Nombre de tests pouvant être exécutés en parallèle Ce nombre ne dépassera pas la capacité de votre offre 0 signifie : maximal |
|
| Non | 0 | Les tests doivent-ils être réessayés s'ils échouent ? Valeurs valides : 0 à 3 |
|
| Non |
| Type de navigateur à utiliser pour l'exécution du test |
|
| Non |
| Type d'appareil à émuler pendant l'exécution du test |
|
| Non |
| Résolution de la fenêtre d'affichage du navigateur en pixels, au format « largeurxhauteur » |
|
| Non |
| Active ou désactive l'exécution de JavaScript dans le navigateur. Notez que certaines étapes de test dépendent du fait que cette option soit définie sur true. |
|
| Non |
| Met en surbrillance l'élément cible de chaque action. |
|
| Non |
| Indique s'il faut ignorer les erreurs HTTPS pendant la navigation. |
|
| Non |
| Activer ou désactiver le thème sombre pour le navigateur |
|
| Non |
| Activer les mesures visant à éviter la détection des bots pendant l'exécution des tests |
|
| Non | - | Facteur d'échelle pour l'écran de l'appareil |
|
| Non | - | Forcer un schéma de couleurs spécifique pour les tests d'accessibilité |
|
| Non | - | Paramètre de langue du navigateur (par exemple, « en-US », « fr-FR ») |
|
| Non | - | Nom d'utilisateur pour l'authentification |
|
| Non | - | Mot de passe pour l'authentification |
|
| Non | - | Configuration du serveur proxy |
|
| Non | - | En-têtes HTTP personnalisés à inclure dans les requêtes |
Réponse
L'API renvoie une réponse contenant des détails sur l'exécution du test. Le format exact peut varier en fonction des résultats du test, mais comprend généralement :
Statut d'exécution du test
Résumé des résultats du test
Résultats détaillés pour chaque cas de test
Toutes les erreurs ou tous les échecs rencontrés
Gestion des erreurs
L'API utilise les codes d'état HTTP standard pour indiquer la réussite ou l'échec :
200 OK: la requête a abouti et les tests ont été exécutés400 Bad Request: la requête était mal formée ou il manquait des paramètres obligatoires401 Non autorisé: l'authentification a échoué ou le jeton n'est pas valide403 Forbidden: l'utilisateur authentifié n'a pas l'autorisation d'exécuter les tests spécifiés404 Not Found: une ou plusieurs des ressources spécifiées (projet, cas de test, environnement ou persona) sont introuvables500 Internal Server Error: une erreur inattendue s'est produite sur le serveur
Utilisation avec GitHub Actions
Vous pouvez facilement intégrer l'API Thunders à vos workflows GitHub Actions afin d'automatiser l'exécution des tests dans le cadre de votre pipeline CI/CD.
Exemple de workflow GitHub Action
name: Run Thunders Test Cases
on:
workflow_dispatch: # This allows manual triggering from the GitHub
UI
# You can add other triggers here as needed, such as:
# push:
# branches: [ main ]
# schedule:
# - cron: '0 0 * * *'
# Run daily at midnight
jobs:
run-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Run Thunders API Test Cases
id: run-tests
uses: fjogeleit/http-request-action@v1
with:
url: ''
method: 'POST'
customHeaders: >
{
"Authorization": "Bearer $",
"X-MS-API-ROLE": "M2M",
"Content-Type": "application/json"
}
data: >
{
"ProjectId": "c8e34ec4-2464-43c7-8db8-1b3a47a22337",
"TestCaseIds": [
"a836fadc-377a-46fe-96b0-21f37c626bf9",
"61015c47-612f-47fa-82a6-41d910832c1b",
"8eea2fd3-da6d-4434-a310-176be84c5646"
],
"EnvironmentId": "eca24252-e566-40a8-b2b0-707b7efa85d8",
"PersonaId": "70d0ac52-fe94-4d89-aba9-8ef28dd8c04c",
"BrowserSettings": {
"Location": "ParisSelfHosted",
"browserType": "Chromium",
"DeviceType": "Desktop",
"Resolution": "1440x900"
}
}
- name: Output API Response
if: $
run: echo "API Response - $"
Configuration des secrets GitHub
Pour utiliser l'API Thunders dans votre workflow GitHub Actions, vous devez configurer un secret pour votre jeton API :
Accédez à votre référentiel GitHub
Accédez à Paramètres > Secrets et variables > Actions
Cliquez sur « Nouveau secret de référentiel »
Nom :
THUNDER_TEST_TOKENValeur : votre jeton API Thunders
Cliquez sur « Ajouter un secret »
Personnalisation du workflow
Vous pouvez personnaliser le workflow en :
Modifiant les événements déclencheurs (par exemple, sur push, sur planning)
Modifiant les paramètres de test (ProjectId, TestCaseIds, TestSetIds, EnvironmentId, PersonaId)
Ajoutant des étapes supplémentaires pour traiter les résultats des tests


