Vue d'ensemble
L'API Thunder Code fournit un point d'extrémité 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.thundercode.ai/api/test-cases/run> POST <https://api.thundercode.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 Thunder Code. 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 de machine à machine |
|
| Spécifie le format du corps de la demande |
Corps de la demande pour l'exécution du scénario de test
Le corps de la demande doit être un objet JSON avec les propriétés suivantes :
{ "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": "SanFrancisco", "ViewportWidth": 1440, "ViewportHeight": 900, "DeviceType": "Desktop" } }
Paramètres
Paramètre | Type d'objet | Description de l'objet |
|
| L'identifiant unique du projet contenant les cas de test. |
|
| Tableau des identifiants des cas de test à exécuter. |
|
| Identifiant unique de l'environnement à utiliser. |
|
| L'identifiant unique du persona à utiliser lors de l'exécution des tests. |
| `"London" | "Amsterdam" |
|
| Largeur de la fenêtre du navigateur en pixels. |
|
| Hauteur de la fenêtre du navigateur en pixels. |
Corps de la requête pour l'exécution d'un ensemble de tests
Le corps de la requête doit être un objet JSON avec les propriétés suivantes :
{ "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", "ViewportWidth": 1440, "ViewportHeight": 900, } }
Paramètres
Paramètre | Type d'objet | Description de l'objet |
|
| L'identifiant unique du projet contenant les cas de test. |
|
| Tableau des identifiants des jeux de tests à exécuter. |
|
| Identifiant unique de l'environnement à utiliser. |
|
| L'identifiant unique du persona à utiliser lors de l'exécution des tests. |
| `"London" | "Amsterdam" |
|
| Largeur de la fenêtre du navigateur en pixels. |
|
| Hauteur de la fenêtre du navigateur en pixels. |
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 il comprend généralement les éléments suivants
État de l'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 défaillances rencontrées
Gestion des erreurs
L'API utilise les codes d'état HTTP standard pour indiquer le succès ou l'échec :
200 OK
: La demande a été acceptée et les tests ont été exécutés.400 Bad Request (mauvaise demande
) : La demande était malformée ou il manquait des paramètres requis.401 Unauthorized (Non autorisé
) : L'authentification a échoué ou le jeton n'est pas valide.403 Forbidden (Interdit
) : L'utilisateur authentifié n'a pas la permission d'exécuter les tests spécifiés.404 Not Found
: Une ou plusieurs des ressources spécifiées (projet, cas de test, environnement ou persona) n'ont pas été trouvées.500 Internal Server Error (erreur interne du serveur)
: Une erreur inattendue s'est produite sur le serveur
Utilisation avec les actions GitHub
Vous pouvez facilement intégrer l'API Thunder Code à vos flux de travail GitHub Actions pour automatiser l'exécution des tests dans le cadre de votre pipeline CI/CD.
Exemple de flux d'actions GitHub
name: Run ThunderCode 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 ThunderCode API Test Cases id: run-tests uses: fjogeleit/http-request-action@v1 with: url: '<https://api.thundercode.ai/api/test-cases/run>' method: 'POST' customHeaders: > { "Authorization": "Bearer ${{ secrets.THUNDER_TEST_TOKEN }}", "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" } - name: Output API Response if: ${{ success() }} run: echo "API Response - ${{ steps.run-tests.outputs.response }}"
Configuration des secrets GitHub
Pour utiliser l'API Thunder Code dans votre flux de travail GitHub Actions, vous devez configurer un secret pour votre jeton API :
Allez sur votre dépôt GitHub
Naviguez vers Paramètres > Secrets et variables > Actions
Cliquez sur "New repository secret"
Nom :
THUNDER_TEST_TOKEN
Valeur : Votre code API Thunder Code
Cliquez sur "Ajouter un secret".
Personnaliser le flux de travail
Vous pouvez personnaliser le flux de travail en
Modifier les événements déclencheurs (par exemple, en cas de poussée, en cas de planification)
Modifier les paramètres de test (ProjectId, TestCaseIds, TestSetIds, EnvironmentId, PersonaId)
Ajouter des étapes supplémentaires pour traiter les résultats des tests
Maintenance et mises à jour
Cette documentation reflète l'état actuel de l'API Thunder Code. Au fur et à mesure de l'évolution de la plateforme, de nouvelles fonctionnalités et de nouveaux paramètres peuvent être ajoutés. Veuillez vous référer à la documentation officielle de Thunder Code pour obtenir les informations les plus récentes.