


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.
- Créez un dossier localement dans votre système, j'ai créé un dossier appelé CypressAPITests dans mon système.
API de cyprès
2 . Ensuite, ouvrez l'éditeur Visual Studio Code et ouvrez le dossier tel que créé à l'étape 1.
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.
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.
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.
6 . Une fois l'outil Cypress ouvert, sélectionnez Test E2E.
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éé.
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-
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-
- Exécution via terminal
- 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-
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.
- Une fois que vous voyez la fenêtre de l'outil ouverte, cliquez sur E2E Testing.
- Sélectionnez maintenant n’importe quel navigateur. Je sélectionne Electron.
- Vous verrez que le navigateur Electron s'ouvre avec les spécifications que nous avons écrites pour le code Visual Studio affiché.
- Sélectionnez HttpGetRequest et vous verrez que l'exécution commence avec l'affichage des journaux.
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-
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-
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-
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 -
- 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.
- 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!

INTRODUCTION Je sais que vous pouvez le trouver étrange, que doit faire exactement JavaScript, C et Browser? Ils semblent sans rapport, mais en fait, ils jouent un rôle très important dans le développement Web moderne. Aujourd'hui, nous discuterons du lien étroit entre ces trois. Grâce à cet article, vous apprendrez comment JavaScript fonctionne dans le navigateur, le rôle de C dans le moteur du navigateur et comment ils fonctionnent ensemble pour stimuler le rendu et l'interaction des pages Web. Nous connaissons tous la relation entre JavaScript et Browser. JavaScript est la langue principale du développement frontal. Il fonctionne directement dans le navigateur, rendant les pages Web vives et intéressantes. Vous êtes-vous déjà demandé pourquoi javascr

Node.js excelle dans des E / S efficaces, en grande partie grâce aux flux. Streams traite les données progressivement, en évitant la surcharge de mémoire - idéal pour les fichiers volumineux, les tâches réseau et les applications en temps réel. Combiner les flux avec la sécurité de type dactylographié crée un powe

Les différences de performance et d'efficacité entre Python et JavaScript se reflètent principalement dans: 1) comme un langage interprété, Python fonctionne lentement mais a une efficacité de développement élevée et convient au développement rapide des prototypes; 2) JavaScript est limité au thread unique dans le navigateur, mais les E / S multi-threading et asynchrones peuvent être utilisées pour améliorer les performances dans Node.js, et les deux ont des avantages dans les projets réels.

JavaScript est originaire de 1995 et a été créé par Brandon Ike, et a réalisé que la langue en langue C. 1.C offre des capacités de programmation élevées et au niveau du système pour JavaScript. 2. La gestion de la mémoire de JavaScript et l'optimisation des performances reposent sur le langage C. 3. La fonctionnalité multiplateforme du langage C aide JavaScript à s'exécuter efficacement sur différents systèmes d'exploitation.

JavaScript s'exécute dans les navigateurs et les environnements Node.js et s'appuie sur le moteur JavaScript pour analyser et exécuter du code. 1) Générer une arborescence de syntaxe abstraite (AST) au stade d'analyse; 2) Convertir AST en bytecode ou code machine à l'étape de compilation; 3) Exécutez le code compilé à l'étape d'exécution.

Les tendances futures de Python et JavaScript incluent: 1. Python consolidera sa position dans les domaines de l'informatique scientifique et de l'IA, 2. JavaScript favorisera le développement de la technologie Web, 3. Le développement de plate-forme multiplié deviendra un sujet brûlant, et 4. L'optimisation des performances sera le focus. Les deux continueront d'étendre les scénarios d'application dans leurs champs respectifs et de faire plus de percées dans les performances.

Les choix de Python et JavaScript dans les environnements de développement sont importants. 1) L'environnement de développement de Python comprend Pycharm, Jupyternotebook et Anaconda, qui conviennent à la science des données et au prototypage rapide. 2) L'environnement de développement de JavaScript comprend Node.js, VScode et WebPack, qui conviennent au développement frontal et back-end. Le choix des bons outils en fonction des besoins du projet peut améliorer l'efficacité du développement et le taux de réussite du projet.

Oui, le noyau du moteur de JavaScript est écrit en C. 1) Le langage C fournit des performances efficaces et un contrôle sous-jacent, qui convient au développement du moteur JavaScript. 2) Prendre le moteur V8 comme exemple, son noyau est écrit en C, combinant l'efficacité et les caractéristiques orientées objet de C. 3) Le principe de travail du moteur JavaScript comprend l'analyse, la compilation et l'exécution, et le langage C joue un rôle clé dans ces processus.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)
