Ce tutoriel est une introduction aux tests d'API en utilisant le Framework Karate. Apprenez la structure du script de test Karate et les étapes pour construire le premier script de test :

API est un acronyme qui signifie Application Programming Interface (interface de programmation d'applications). En termes simples, nous pouvons la définir comme un intermédiaire logiciel qui permet la communication entre les applications.

Nous avons besoin de tests d'API parce que :

  • Les résultats sont publiés plus rapidement et il n'est donc plus nécessaire d'attendre pour savoir si l'API fonctionne correctement.
  • Grâce à une réponse plus rapide, le déploiement de ces API est également plus rapide, ce qui permet d'obtenir des délais d'exécution plus courts.
  • La détection précoce des défaillances, avant même que l'interface utilisateur de l'application ne soit créée, nous permet d'atténuer les risques et de corriger les défauts.
  • Possibilité de livraison à grande échelle dans un délai plus court.

Pour pouvoir travailler sur les tests d'API, nous disposons de divers outils sur le marché, tels que Postman, Mocha et Chai. Ceux-ci ont démontré de bons résultats et une utilisation efficace pour tester les API, mais ils sont fortement influencés par le code. Pour pouvoir les utiliser, il faut être techniquement solide et familier avec les langages de programmation.

Le Karate Framework résout admirablement ce problème des outils logiciels qui l'ont précédé.

Qu'est-ce que le cadre du karaté ?

Karaté ? Parlons-en. Est-ce celui du Japon ? Qu'en pensez-vous ? Il se pourrait que le grand Bruce Lee l'ait développé pendant son temps libre.

Nous aimerions nous pencher sur les racines intéressantes du karaté, mais pour l'instant, parlons plutôt de l'art du karaté. Outil de karaté qui a été développé par Peter Thomas un des grands outils qui viennent à la rescousse des testeurs d'API.

Le framework Karate suit le style Cucumber pour écrire le programme qui suit l'approche BDD. La syntaxe est facile à comprendre pour les non-programmeurs. Et ce framework est le seul outil de test d'API qui a combiné l'automatisation de l'API et les tests de performance en un seul outil autonome.

Il permet aux utilisateurs d'exécuter les cas de test en parallèle et d'effectuer les vérifications JSON & ; XML.

Ces informations permettent de déduire certains points clés pour mieux comprendre l'outil Karaté en détail :

  • Karate est un cadre de test BDD plutôt que TDD.
  • Il est conçu pour être facile à utiliser pour les non-programmeurs, ce qui change la donne puisqu'il permet à un grand nombre de personnes de l'utiliser et d'y avoir accès, quelles que soient leurs connaissances techniques ou leurs capacités.
  • Il utilise le fichier de caractéristiques Cucumber et le langage Gherkins pour écrire le test qui est très facile à comprendre.

Toutes ces caractéristiques en font l'un des outils d'automatisation les plus favorables disponibles aujourd'hui.

Histoire du cadre du karaté

Créé par ' Peter Thomas Il a été écrit en Java et la plupart des gens s'attendaient à ce que ses fichiers soient également dans le même langage, mais heureusement, ce n'est pas le cas.

Il utilise plutôt des fichiers Gherkins, ce qui est le résultat de sa relation avec le framework Cucumber. Le logiciel d'automatisation est une extension de Cucumber, et hérite donc de l'utilisation des fichiers Gherkins dans son fonctionnement. La grande différence entre les deux est que Karate n'utilise pas Java pendant les tests, alors que Cucumber le fait.

C'est la raison même pour laquelle il s'adresse aux non-programmeurs car la syntaxe de Gherkins est très lisible et complète. C'est la raison pour laquelle Karate est le plus adapté et le plus recommandé pour faire son entrée dans le monde des tests automatisés d'API.

Voici quelques caractéristiques du Karate Testing Framework :

  • Utilise le langage facile à comprendre des cornichons.
  • Il ne nécessite pas de connaissances techniques en programmation comme Java.
  • Il est basé sur les normes populaires de Cucumber.
  • Il est facile de créer un cadre.
  • Les tests parallèles sont une fonctionnalité de base fournie par Karate lui-même, et nous n'avons donc pas besoin de dépendre de Maven, Gradle , etc.
  • Interface utilisateur pour déboguer le test.
  • Appel d'un fichier de caractéristiques à partir d'un autre fichier.
  • Fournit des supports pour le test du pilote de données qui est construit en interne, sans qu'il soit nécessaire de dépendre de cadres externes.
  • De plus, il peut être intégré à Cucumber pour de meilleurs rapports d'interface utilisateur et plus de clarté.
  • Fournit une assistance interne pour la configuration de la commutation dans différents environnements de test (QA, Stage, Prod, Pre-Prod).
  • Prise en charge transparente de l'intégration CI/CD qui peut s'avérer utile.
  • Capable de gérer divers appels HTTP :
    • Prise en charge de Web Socket
    • Demande SOAP
    • HTTP
    • Gestion des cookies du navigateur
    • HTTPS
    • Données du formulaire HTML
    • Demande XML

Comparaison entre Karate et Rest-Assured

Soyez rassurés Il s'agit d'une bibliothèque basée sur Java pour tester les services REST. Elle utilise le langage Java pour écrire les lignes de code. Elle aide à tester de nombreuses catégories de demandes, ce qui permet de vérifier différentes combinaisons de logique d'entreprise.

Cadre du karaté : Un outil basé sur Cucumber/Gherkins, utilisé pour tester les services SOAP et REST.

Le tableau suivant présente quelques différences importantes entre Rest-Assured & ; Karate Framework :

S.No Base Cadre du karaté Assuré par REST
1 Langue Il utilise une combinaison de concombres et de cornichons. Il utilise le langage Java
2 Code Taille En général, la ligne de code est moins longue, car elle suit une structure de type Cucumber. La ligne de code est plus importante car elle implique l'utilisation du langage Java.
3 Connaissances techniques requises Les non programmeurs peuvent facilement écrire le code Gherkins Des connaissances techniques sont nécessaires pour écrire du code Java
4 Tests basés sur les données Nécessité d'utiliser TestNG ou l'équivalent pour prendre en charge le même processus Les étiquettes internes peuvent être utilisées pour soutenir les tests de données
5 Prend-il en charge les appels SOAP ? Oui, il fournit Il s'agit uniquement d'une demande REST
6 Tests en parallèle Oui, les tests en parallèle sont facilement pris en charge grâce à la génération de rapports en parallèle. Bien que des personnes aient essayé de le faire, le taux d'échec est plus élevé que le taux de réussite.
7 Rapports Il fournit des rapports en interne et n'a donc pas besoin d'être dépendant de plugins externes. Nous pouvons même l'intégrer au plugin de reporting Cucumber pour une meilleure interface utilisateur. Nécessité d'être dépendant de plugins externes comme Junit, TestNG
8 Support CSV pour les données externes Oui, à partir de Karate 0.9.0 Non, il faut utiliser le code ou la bibliothèque Java
9 Automatisation de l'interface utilisateur Web Oui, à partir de Karate 0.9.5, l'automatisation de l'interface Web-UI est possible. Non, il n'est pas pris en charge
10 Exemple GET Paramètre donné val1 = 'nom1'

Et param val2 = 'nom2'

Et le chemin "somelocation

Lorsque la méthode

La réponse contient alors "OKAY

donné().

param("val1", "name1").

param("val2", "name2").

when().

get("/some\location").

then().

body(containsString("OKAY")) ;

Ainsi, comme le démontrent les différences ci-dessus, on peut affirmer que le karaté est l'une des choses les plus faciles à faire pour n'importe qui.

Outils nécessaires pour travailler avec Karate Framework

Maintenant que nous avons acquis nos connaissances de base sur le Karate Framework, examinons les processus et les outils nécessaires à la mise en place de l'environnement Karate.

#1) Eclipse

Eclipse est un environnement de développement intégré utilisé dans le domaine de la programmation informatique. Il est principalement utilisé pour la programmation Java. Comme mentionné précédemment, Karate est écrit en Java, il est donc logique qu'Eclipse soit l'IDE de choix pour le logiciel de test de l'API. Une autre raison est qu'il s'agit d'un outil open-source, ce qui est une raison assez forte d'opter pour cet outil.

Remarque : Nous pourrions même utiliser IntelliJ, Visual Studio et d'autres éditeurs disponibles sur le marché.

#2) Maven

Il s'agit d'un outil d'automatisation de la construction utilisé principalement pour construire des projets Java. C'est une façon de mettre en place un environnement Karate et d'écrire le code. Pour configurer votre Eclipse avec les exigences de Maven, vous pouvez cliquer ici pour l'installation de Maven.

Lorsque vous travaillez avec Maven, utilisez les dépendances Maven qui vous aideront à supporter le Karate Framework.

Les dépendances suivantes seront utilisées avec Maven dans pom.xml.

 com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test 

Remarque : Les dernières versions peuvent être disponibles dans le dépôt Maven.

#3) Gradle

Gradle est une alternative à Maven et peut être utilisé de la même manière. Ils ont leurs similitudes et leurs différences mais peuvent être utilisés de la même manière dans la mise en place d'un environnement pour nos codes Karate.

Il est plus facile à utiliser, plus flexible, et il est recommandé de l'utiliser lorsque notre application a des exigences de modularisation et de gestion avec un grand nombre de plug-ins. Le code d'installation de Gradle ressemblerait à quelque chose comme ceci,

 testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0' 

Remarque : Vous pouvez soit utiliser MAVEN ou GRADLE.

#4) Configuration de l'environnement Java dans votre système

Il est nécessaire de configurer l'environnement JDK et JRE pour commencer à utiliser les scripts du Karate Framework.

Structure d'un script de test de karaté

Un script de test Karate est connu pour la possession de l'extension ".feature". Cette propriété est héritée de Cucumber. L'organisation des fichiers en convention Java est également permise. Vous êtes libre d'organiser vos fichiers selon les conventions du paquetage Java.

Cependant, les directives Maven stipulent que le stockage des fichiers non-Java doit être effectué séparément. Ils sont stockés dans un fichier de type src/test/resources Les fichiers Java sont conservés sous src/main/java .

Mais les créateurs du Karate Framework croient fermement que nous devons conserver les fichiers Java et non-Java côte à côte. Selon eux, il est beaucoup plus facile de rechercher les fichiers *.java et *.feature lorsqu'ils sont conservés ensemble, plutôt que de suivre la structure standard de Maven.

Ceci peut être facilement réalisé en modifiant votre pom.xml comme suit (pour Maven) :

 src/test/java **/*.java ... 

Voici les grandes lignes de la structure générale du cadre du karaté :

Maintenant, puisque ce Karate Framework utilise le fichier Runner, qui est également nécessaire dans Cucumber pour exécuter les fichiers de fonctionnalités, la plupart de l'écriture suivra les normes de Cucumber.

Mais, contrairement à Cucumber, les étapes ne nécessitent pas de définition claire dans Karate, ce qui, à son tour, améliore la flexibilité et la facilité des opérations. Nous n'avons pas besoin d'ajouter la colle supplémentaire que nous devons habituellement ajouter lorsque nous suivons le cadre de Cucumber.

La classe "Runner" est la plupart du temps nommée TestRunner.java.

Le fichier TestRunner.java prendra alors la forme suivante :

 import com.intuit.karate.junit4.Karate ; import org.junit.runner.RunWith ; @RunWith(Karate.class) public class TestRunner { } 

Et en parlant de la .caractéristique il contient tous les scénarios à tester pour s'assurer que l'API fonctionne conformément aux exigences prévues.

Un fichier *.feature général ressemble à ce qui est indiqué ci-dessous :

 Fonctionnalité : récupération des détails de l'utilisateur Scénario : test de l'appel "get" pour les détails de l'utilisateur URL donnée "//reqres.in/api/users/2" Méthode GET Statut 200 

Création du premier script de test de base du karaté

Cette section vous aidera à démarrer la création de votre tout premier script de test, qui vous sera utile pour convertir les API sous la forme d'un cadre Karate.

Avant d'écrire les scripts de test de base de Karate, veuillez installer les éléments suivants sur votre machine :

  • IDE Eclipse
  • Maven. Définissez le chemin d'accès Maven approprié.
  • JDK & ; JRE. Définissez le chemin d'accès approprié.

Voyons comment procéder, étape par étape :

#1) Créer un nouveau MAVEN Projet dans l'éditeur Eclipse

  • Open Eclipse
  • Cliquez sur Fichier et sélectionnez Nouveau projet.

  • Sélectionner le projet Maven

  • Choisissez l'emplacement de l'espace de travail.
  • Sélectionnez l'archétype (en général, nous choisissons " Maven-archetype-quickstart 1.1 "pour les projets Maven simples).
  • Indiquez l'ID du groupe & ; l'ID de l'artefact (nous avons utilisé les valeurs suivantes dans notre exemple).
    • ID du groupe Karaté : Karaté
    • ID de l'artefact : Exemple de script de test de karaté
  • Cliquez sur Terminer pour achever la configuration.

#2) Une fois créé, vous pourrez voir la structure suivante dans la fenêtre de l'explorateur de projet.

#3) Incluez toutes vos dépendances.

Notre toute première étape, après l'installation, consistera à inclure toutes les dépendances Nous conserverons toutes les balises dans le fichier POM.xml (en supposant que vous connaissiez déjà l'utilisation du fichier POM.xml).

  • Ouvrez le fichier POM.xml et copiez le code ci-dessous sous la balise dependency et enregistrez le fichier.
 com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test 

Cliquez ici pour la source.

#4) Réfléchissons au scénario, à ce que nous allons tester dans ce script de test de base du karaté.

Scénario :

Nous allons tester une API avec cette URL.

Trajectoire : api/utilisateurs/2

Méthode : GET

Et nous devons valider si la demande renvoie un Code de réussite (200) ou non.

En termes simples, nous allons simplement tester un exemple d'API pour voir s'il est exécuté avec succès.

Remarque : Nous prenons un exemple d'API disponible à des fins de test. Vous pouvez choisir n'importe quel chemin d'accès ou vous référer à votre API.

Cliquez ici pour la source.

#5) L'étape suivante consiste à créer un .caractéristique fichier.

Comme nous l'avons vu dans l'introduction, la Fichier .feature est la propriété héritée de Cucumber. Dans ce fichier, nous allons écrire les scénarios de test qui doivent être exécutés pour réaliser le test de l'API.

  • Aller au dossier src/test/java dans votre projet.

  • Cliquez avec le bouton droit de la souris et créez un nouveau fichier - userDetails.feature. Cliquez ensuite sur le bouton Terminer.

Vous verrez maintenant le fichier suivant dans le dossier src/test/java

Les Icône de couleur verte ressemble à la .feature fi le dans Cucumber que nous venons de créer.

  • Une fois le fichier créé, nous allons maintenant écrire nos scénarios de test qui seront discutés dans la section suivante.

#6) Puisque nous disposons du scénario et de l'ébauche . caractéristique est prêt, commençons maintenant notre premier script. Commençons à coder

Écrire la ligne de code suivante dans le fichier userDetails.feature que nous avons créé à l'étape 5 :

 Fonctionnalité : récupération des détails de l'utilisateur Scénario : test de l'appel "get" pour les détails de l'utilisateur URL donnée "//reqres.in/api/users/2" Méthode GET Statut 200 

Essayons de comprendre les composants qui sont écrits dans le fichier ci-dessus :

  • Fonctionnalité : Le mot-clé explique le nom de la fonctionnalité que nous testons.
  • Contexte : Il s'agit d'une section facultative qui est traitée comme une section de prérequis. Elle peut être utilisée pour définir tout ce qui est nécessaire pour tester l'API. Elle contient les éléments suivants HEADER, URL & ; PARAM options.
  • Scénario : Chaque fichier de caractéristiques que vous verrez contiendra au moins une caractéristique (bien qu'il puisse donner des informations sur les caractéristiques). multiples Il s'agit de la description du cas de test.
  • Compte tenu de ce qui précède : Il s'agit de l'étape qui doit être exécutée avant toute autre étape du test. Il s'agit d'une action obligatoire à exécuter.
  • Quand : Il précise la condition qui doit être remplie pour passer à l'étape suivante du test.
  • Ensuite : Il nous indique ce qui doit se passer dans le cas où la condition mentionnée dans la Quand est satisfaite.

Remarque : Tous les mots-clés mentionnés ci-dessus sont issus du langage Gherkins, qui constitue la méthode standard d'écriture des scripts de test à l'aide de Cucumber.

Voici d'autres mots utilisés dans le fichier des caractéristiques :

  • 200 : Il s'agit du code de statut/réponse que nous attendons (Cliquez ici pour la liste des codes de statut).
  • GET : Il s'agit de la méthode de l'API comme POST, PUT, etc.

Nous espérons que cette explication a été facile à comprendre pour vous et que vous serez maintenant en mesure de comprendre ce qui est écrit dans le fichier ci-dessus.

Nous devons maintenant créer un fichier TestRunner.java

Comme expliqué dans la section précédente, Cucumber a besoin d'un fichier Runner qui serait nécessaire pour exécuter la commande .caractéristique qui contient les scénarios de test.

  • Aller au dossier src/test/java dans votre projet

  • Cliquez dessus avec le bouton droit de la souris et créez un nouveau fichier Java : TestRunner.java
  • Une fois le fichier créé, placer les lignes de code suivantes sous celui-ci :
 import org.junit.runner.RunWith ; import com.intuit.karate.junit4.Karate ; @RunWith(Karate.class) public class TestRunner { } 
  • Test Runner est le fichier qui sera exécuté pour réaliser le scénario souhaité qui a été écrit à l'étape 5.

#7) Nous sommes maintenant prêts avec les deux fichiers TestRunner.Java et userDeatils.feature. Il ne nous reste plus qu'à Exécuter le script.

  • Allez au fichier TestRunner.java et faites un clic droit sur le fichier comme indiqué dans l'image ci-dessous.

  • Choisissez Exécuter sous -> ; Junit Test
  • Une fois sélectionné, vous constaterez que le cas de test a démarré.
  • Attendez que le script de test s'exécute. Une fois que c'est fait, vous observerez quelque chose comme l'image ci-dessous dans votre fenêtre.

  • Enfin, nous pouvons dire que nous avons créé avec succès notre toute première base Script de test en utilisant le Cadre du karaté.

#8) Enfin, le cadre Karate fournit également une présentation de rapport HTML pour l'exécution qui a été effectuée.

  • Allez dans Target Folder -> ; surefire-reports-> ; Vous y verrez votre rapport HTML que vous pouvez ouvrir.

** Nous vous suggérons également d'ouvrir le site en utilisant le navigateur Chrome pour un meilleur rendu.

  • Le rapport HTML suivant vous sera présenté, décrivant Scénarios & ; Test qui a été exécuté pour le scénario mentionné :

Conclusion

Dans ce tutoriel, nous avons abordé les tests d'API, les différents outils de test disponibles sur le marché et la manière dont le Karate Framework est une meilleure option par rapport à ses homologues.

Nous avons suivi une approche étape par étape pour créer notre premier script de test de base. Nous avons commencé par créer un script de base de type Projet Maven dans l'IDE Eclipse pour créer un fichier .feature, qui contient tous les scénarios de test et un fichier Runner pour exécuter le cas de test mentionné dans le fichier .feature.

À la fin des multiples étapes, nous pouvons voir le rapport d'exécution des résultats du test.

Nous espérons que ce tutoriel a été utile aux débutants pour apprendre à construire leur premier script de test à l'aide du Karate Framework et à effectuer des tests d'API. Cette approche détaillée étape par étape est un excellent moyen de lancer et d'exécuter divers tests sur l'API.

NEXT>> ;

Remonter