Maison > interface Web > js tutoriel > Maîtriser les tests de l'API Cypress : un guide complet avec des exemples

Maîtriser les tests de l'API Cypress : un guide complet avec des exemples

DDD
Libérer: 2024-12-27 10:48:10
original
148 Les gens l'ont consulté

Les interfaces de programmation d'applications, communément appelées API, constituent un aspect important du cycle de vie du développement logiciel, non seulement du point de vue du développement, mais également du point de vue des tests. Ces API facilitent l'interaction entre différents systèmes pour échanger des données. Il devient donc extrêmement important de tester minutieusement ces API pour garantir un fonctionnement transparent de l’application.

Dans cet article, nous explorerons les tests d'API avec Cypress Testing Framework et verrons comment nous pouvons automatiser nos API pour des tests efficaces. Nous aborderons les points ci-dessous dans cet article-

Présentation des tests API

Les tests d'API impliquent d'envoyer la requête HTTP, qu'il s'agisse de GET, POST, PUT, DELETE (ou d'autres méthodes) au serveur backend et de récupérer les réponses. Une fois les réponses récupérées, elles sont validées pour garantir que les valeurs attendues ont été reçues. Certains aspects clés des tests d'API sont répertoriés ci-dessous

  • Vérification du code d'état – La validation du code d'état dans la réponse est effectuée pour garantir que le code d'état souhaité est reçu. Par exemple, 200 codes de statut sont attendus pour garantir le succès. Vous pouvez vous référer à d'autres codes d'état standard utilisés pour les requêtes HTTP dans la documentation wiki.
  • Assertions du corps de réponse – Validation du corps de la réponse HTTP pour garantir que le XML ou le JSON contient les données attendues et a la structure correcte.
  • Test du paramètre de requête – Validation du comportement de l'API en passant différentes valeurs dans les paramètres et les en-têtes.
  • Authentification et autorisation – Validation du mécanisme d'authentification approprié et des aspects de sécurité. Lors du test des API, les points ci-dessus sont pris en compte pour garantir que le fonctionnement de bout en bout de l'API est sans bug.

Utiliser Cypress pour les tests d'API

Cypress est un outil de test frontal populaire, utilisé pour les tests de navigateur et d'automatisation de bout en bout. Cypress est doté de fonctionnalités de requête réseau, ce qui en fait également un bon choix pour les tests d'API. Certaines des fonctionnalités clés offertes par Cypress pour les tests d'API sont -

  • Familiarité avec la syntaxe – Semblables aux tests d'interface utilisateur, les commandes de l'API Cypress utilisent la même syntaxe .should() et .then().
  • Assertions intégrées – Nous pouvons facilement utiliser les assertions fournies par Cypress pour affirmer le code d'état, les en-têtes ou même le corps de réponse des requêtes API.
  • Réessayer les demandes ayant échoué – Cypress réessaye automatiquement les demandes ayant échoué pour s'assurer qu'il n'y a pas de problème de réseau ou autre problème similaire.

Documentation élaborée – Cypress a des demandes et des affirmations bien documentées, ce qui facilite l'obtention d'une assistance en cas de fuite.

Principales fonctionnalités des tests de l'API Cypress

Cypress est livré avec une variété de fonctionnalités pour vous aider à effectuer des tests API de manière efficace et efficiente. Quelques fonctionnalités sont discutées ci-dessous-

  • cy.wait() – Fournit un mécanisme pour attendre une requête réseau et aide à charger des données asynchrones.
  • cy.route() – Aide à acheminer les demandes de test vers des gestionnaires spécifiques.
  • cy.server() – aide à maintenir un serveur entier pour une suite de tests.
  • Test Runners – Aide à l'exécution parallèle des tests pour un délai d'exécution rapide.
  • cy.login() – Aide à effectuer des requêtes API sécurisées en définissant des en-têtes d'autorisation avec une seule commande avant les appels.
  • cy.intercept() – Contrôle les réponses ou simule le comportement en interceptant les requêtes. Avec ces fonctionnalités, il devient très simple et pratique pour l'utilisateur de commencer à écrire des tests API avec des capacités améliorées et un cadre efficace.

Maintenant que nous comprenons comment Cypress peut nous aider à automatiser nos API, écrivons un simple test d'API à l'aide de Cypress. Mais avant cela, vous devez vous assurer que les conditions préalables ci-dessous sont remplies -

  • Installez un IDE comme Visual Studio (c'est l'IDE le plus utilisé, mais vous pouvez également vous référer à un autre IDE comme IntelliJ)
  • Installez Node.js dans votre système Passons maintenant aux étapes d'écriture de notre premier test API à l'aide de Cypress.

Écrire le premier test API à l'aide de Cypress

Dans cet article, nous aborderons un scénario simple d'envoi de requêtes HTTP à l'aide des méthodes GET, POST, PUT et DELETE. Mais avant de commencer à écrire le script de test, nous allons configurer l'environnement.

  1. Créez un dossier localement dans votre système, j'ai créé un dossier appelé CypressAPITests dans mon système.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

API de cyprès
2 . Ensuite, ouvrez l'éditeur Visual Studio Code et ouvrez le dossier tel que créé à l'étape 1.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

3 . Maintenant que vous avez ouvert le dossier, l'étape suivante consiste à configurer le projet de nœud. Pour ce faire, dans le terminal utilisez la commande npm init -y, cela créera un fichier package.json.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

4 . Nous allons maintenant installer Cypress depuis le terminal, si ce n'est pas déjà fait, à l'aide de la commande npx cypress install.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

5 . Nous allons maintenant créer les fichiers de configuration de notre test, et pour ce faire, nous exécuterons la commande npx cypress open dans le terminal.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

6 . Une fois l'outil Cypress ouvert, sélectionnez Test E2E.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

7 . Cliquez sur Continuer sur l'écran suivant.

8 . Une fois les fichiers de configuration configurés, retournez dans l'éditeur Visual Studio Code et vous verrez qu'un fichier de configuration a été créé.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

9 . Maintenant, Cypress a été installé avec succès et l'environnement est également prêt. Nous allons commencer à rédiger nos tests maintenant.

Nous utiliserons des appels d'API factices pour faire une démonstration de l'automatisation de l'API Cypress.

Dans l'éditeur Visual Studio Code, créez un dossier e2e sous le répertoire Cypress. Sous le dossier e2e, vous pouvez créer un autre dossier nommé APITests. Notez que vous pouvez sélectionner le nom du dossier selon vos besoins.

Nous allons maintenant commencer à écrire notre premier fichier de test. Nous allons créer un fichier dans le dossier APITests. Appelons-le HttpGetRequest. Ce nom de fichier aura une extension de .cy.js comme indiqué dans l'instantané ci-dessous-

Mastering Cypress API Testing: A Comprehensive Guide with Examples
Nous allons maintenant commencer à écrire le code principal. Avant de faire cela, regardons la syntaxe de base de la requête-

cy.request(MÉTHODE,url,corps)

Dans la requête effectuée via Cypress, l'url est un paramètre obligatoire mais d'autres paramètres comme Method et body sont facultatifs. Vous pouvez consulter les différentes syntaxes de requête dans la documentation officielle de Cypress pour mieux comprendre comment nous pouvons l'utiliser différemment.

Dans notre exemple de scénario, nous utiliserons la méthode GET pour récupérer certaines ressources, nous utiliserons donc la méthode et l'URL comme paramètres de cy.request.

cy.request('GET','https://dummy.restapiexample.com/api/v1/employees')
Cette commande effectuera l'appel API au serveur.

Ensuite, nous affirmerons une valeur de réponse, par exemple le code d'état.

.its('statut')
.should('égal',200);
Cette ligne de code validera le code d'état de la réponse et affirmera que sa valeur est 200.

Regardons à quoi ressemblera ce code une fois rassemblé :

describe('HTTPGet',()=>{

it('GET request',()=>{

cy.request('GET','https://dummy.restapiexample.com/api/v1/employees')
.its('statut')
.should('égal',200);

})

})
Après avoir écrit le code d'une requête GET, nous l'exécuterons de la même manière. Pour l'exécuter, nous pouvons utiliser l'une des deux manières-

  1. Exécution via terminal
  2. Exécution via l'outil Cypress Nous verrons un par un comment nous pouvons effectuer l'exécution.

Exécution via Terminal

Pour exécuter le code Cypress via le terminal, ouvrez la fenêtre du terminal et passez simplement la commande :

npx cypress run –spec "filepath"

Dans la commande ci-dessus, le chemin du fichier est le chemin relatif du fichier que vous souhaitez exécuter. L'instantané ci-dessous montre l'exécution du fichier HTTPGetRequest sur mon système-

Mastering Cypress API Testing: A Comprehensive Guide with Examples

Vous pouvez voir que l'exécution du test a réussi et que notre test API a réussi.

Essayons maintenant d'exécuter le même test via l'outil Cypress.

Exécution via Cypress Tool

1 . Écrivez simplement la commande npx cypress open pour ouvrir l'outil.

  1. Une fois que vous voyez la fenêtre de l'outil ouverte, cliquez sur E2E Testing.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

  1. Sélectionnez maintenant n’importe quel navigateur. Je sélectionne Electron.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

  1. Vous verrez que le navigateur Electron s'ouvre avec les spécifications que nous avons écrites pour le code Visual Studio affiché.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

  1. Sélectionnez HttpGetRequest et vous verrez que l'exécution commence avec l'affichage des journaux.

Mastering Cypress API Testing: A Comprehensive Guide with Examples

Et voilà, vous avez exécuté votre premier test d'automatisation de l'API Cypress. Nous allons maintenant améliorer notre code pour exécuter quelques autres méthodes HTTP.

Méthode POST

Code pour exécuter la requête HTTP POST-

describe('HTTPGet',()=>{

it('Requête POST',()=>{
cy.request({
méthode : 'POST',
URL : 'https://dummy.restapiexample.com/api/v1/create',
corps : {
"name": "post test",
"salaire": "1234",
"âge": "23"

}
})
.its('statut')
.should('égal',200);
})
})
Lors de l'exécution du code ci-dessus, les journaux afficheront les résultats de l'exécution comme indiqué ci-dessous-

Mastering Cypress API Testing: A Comprehensive Guide with Examples
Pour nos prochaines démonstrations, nous utiliserons une autre fausse collection d'API et verrons comment les méthodes de requête HTTP fonctionnent pour elles.

Méthode PUT

Code pour exécuter la requête HTTP PUT-

describe('HTTPPut',()=>{

it('Requête PUT',()=>{
cy.request({
méthode : 'PUT',
URL : 'https://jsonplaceholder.typicode.com/posts/1',
corps : {
identifiant : 1,
title : 'Ceci est la mise à jour PUT',
body : 'Ceci est le corps de la mise à jour PUT',
ID utilisateur : 1,
>
})
.its('statut')
.should('égal',200) ;
})
})

Le résultat de l'exécution du code ci-dessus est affiché ci-dessous-

Mastering Cypress API Testing: A Comprehensive Guide with Examples

Méthode DELETE

Code pour exécuter la requête HTTP de suppression (notez que j'ai ajouté le morceau de code ci-dessous dans le même exemple que j'ai utilisé ci-dessus)-

it('Delete DELETE',()=>{
cy.request({
méthode : 'DELETE',
URL : 'https://jsonplaceholder.typicode.com/posts/1',
})
.its('statut')
.should('égal',200) ;
})
Étant donné que les requêtes PUT et DELETE se trouvaient dans le même fichier, les deux méthodes ont été exécutées et les résultats sont tels qu'affichés ci-dessous-

Mastering Cypress API Testing: A Comprehensive Guide with Examples
Voilà, ça y est et vous savez maintenant comment exécuter les requêtes HTTP de base pour différentes méthodes à l'aide de Cypress. Vous pouvez maintenant essayer d'implémenter les tests d'API Cypress dans vos projets et voir avec quelle facilité vous pouvez tester les API avec des délais d'exécution rapides.

Conclusion

Après avoir passé en revue les bases de l'API et de Cypress pour les tests d'API, nous concluons sur les points ci-dessous -

  1. Cypress API Testing aide avec un ensemble d'outils puissants qui permettent de se familiariser avec la syntaxe de Cypress pour les tests d'interface utilisateur.
  2. Nous pouvons facilement utiliser des assertions pour valider le code d'état de la réponse et tout autre paramètre de réponse.

Source : Cet article a été initialement publié sur testgrid.io.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal