how automate api requests using rest assured
Dans ce didacticiel, nous allons apprendre à automatiser les demandes d'API à l'aide de REST Assured lors de l'exécution de scripts de test sur Jenkins:
Dans le deuxième didacticiel de la série de didacticiels sur l'API REST, nous avons appris différents types de codes de réponse, de requêtes REST, de bonnes pratiques REST et de tests d'API à l'aide de POSTMAN.
DU REPOS Les services Web deviennent de jour en jour populaires en raison de leur facilité de développement, de mise en œuvre, d'accès puis d'exécution. En plus de cela, ils sont légers et n'ont pas de normes strictes à suivre.
Cependant, lorsqu'il existe un plus grand nombre de services qui existent et doivent être exécutés dans chaque nouvelle version, cela devient un cauchemar pour le testeur et au coût du projet. Encore une fois, certains services sont internes et sont liés au projet lui-même et certains sont conçus pour être utilisés par des tiers.
L'idée d'automatisation est donc apparue. Il existe plusieurs outils disponibles pour automatiser les services REST tels que:
- vRest
- HttpMaster
- Parasoft
- Repos assuré
RestAssured est un outil d'automatisation populaire parmi les testeurs. Voyons pourquoi c'est une option privilégiée.
Ce que vous apprendrez:
Pourquoi RESTAssuré?
- Il est open-source, donc toute organisation peut l'utiliser pour les besoins de son projet.
- REST Assured est une bibliothèque Java donc elle ne se présente pas comme une interface graphique comme les autres outils. C'est un framework pour tester les services REST en Java.
- Il fournit un langage DSL (Domain-Specific Language) pour créer un script d'automatisation, utilise n'importe quel langage natif tel que Java et teste l'API Web RESTful.
- Il prend en charge les formats XML et JSON pour la demande, les réponses.
- Il agit comme un client sans tête.
- Nous pouvons personnaliser la requête que nous allons envoyer au serveur en utilisant cette bibliothèque.
- En outre, il peut tester une combinaison variée de logique métier complexe.
- Il est capable de récupérer le code d'état, les réponses, le corps de la réponse, les en-têtes du serveur pour la demande envoyée.
- Il active le style BDD d'écriture de script de test, c'est-à-dire au format GIVEN-WHEN-THEN, de sorte que tout membre de l'équipe commerciale, en particulier dans le domaine non informatique, puisse également le visualiser et comprendre la logique et la couverture du test.
Dans ce tutoriel, nous automatiserons les requêtes que nous avons créées manuellement plus tôt dans le premier tutoriel de l'API REST via POSTMAN et nous discuterons également d'un outil commercial nommé GITHUB.
Automatisation des requêtes d'API Web à l'aide de REST Assured
Dans ce tutoriel, nous allons faire une automatisation de bout en bout, c'est-à-dire créer une classe Java et l'exécuter à partir de Jenkins.
Conditions préalables:
- Les destinataires prévus doivent avoir une connaissance pratique d'Eclipse IDE, Maven, TestNG, ReportNG.
- Les destinataires doivent également être conscients de Jenkins.
- Une connexion Internet est requise si nous accédons à des services déployés sur le Web. Si nous accédons à des services déployés localement, dans ce cas, assurez-vous que le testeur a le droit.
- Si nous automatisons des sites commerciaux et sécurisés, dans ce cas, assurez-vous que le jeton d'autorisation, les jetons API, les clés API, etc. fonctionnent correctement et sont fournis au testeur, qui automatise actuellement le script.
Test de l'URL
- http://jsonplaceholder.typicode.com est opérationnel
- L'utilisateur dispose d'informations d'identification valides sur GitHub
Paramètres environnementaux
#1) Installez Eclipse IDE
Tout d'abord, nous devons télécharger l'IDE Eclipse sur le site officiel de Éclipse.
Ensuite, installez l'IDE. Définissez correctement le chemin, la variable d'environnement JAVA_HOME. Gardez le chemin JDK, JRE à portée de main pour une utilisation future. Une fois Eclipse installé, créez / définissez un espace de travail et ouvrez l'espace de travail.
Dans mon cas c'est:
#deux) Créer un projet Maven
Assurez-vous que vous avez configuré la maison Maven sur les variables environnementales.
# 3) Ajoutez toutes les dépendances pertinentes et nécessaires, les plugins relatifs à REST-ASSURED, TESTNG, REPORTNG à pom.xml.
Voici un exemple de pom.xml.
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) Ajoutez les fichiers JAR requis au chemin de génération des projets Maven.
Normalement, ce sont des fichiers de bibliothèque qui appartiennent à un fichier JAR REST, TESTNG, REPORTNG. Même si nous avons ajouté la dépendance, le plugin sur le fichier pom.xml, mais parfois une erreur survient, nous devons donc ajouter ces jars / bibliothèques pour construire le chemin du projet maven afin d'éviter les erreurs (le cas échéant).
Cependant, lorsque nous créons des projets Java au lieu de projets Maven, dans ce cas, nous devons garder ces fichiers jar, bibliothèques à portée de main et les utiliser en cas de besoin.
# 5) Installez JENKINS (sous Windows)
Téléchargez le Jenkins à partir de jenkins.io/download/.
Ensuite, ouvrez la configuration, suivez les étapes jusqu'à ce qu'elle soit correctement installée.
Une fois installé, nous devons démarrer JENKINS, nous pouvons faire de même à partir d'une invite de commande.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
Une fois que le message ci-dessus est affiché, nous devons attendre encore un peu pour voir le message suivant.
Comme nous pouvons voir le dernier message dans l'écran ci-dessus où Jenkins est pleinement opérationnel, nous pouvons maintenant lancer Jenkins en utilisant l'URL suivante.
http: // localhost: 9090 /
La première fois, cela peut prendre du temps, mais ensuite, ce sera plus rapide. Après cela, nous devons créer un utilisateur.
questions d'entretien de sélénium pour 3 ans d'expérience
Une fois l'utilisateur créé, nous devons relancer Jenkins et accéder à l'interface utilisateur avec le mot de passe.
Une fois Jenkin installé, nous pouvons installer les plugins via Manage Jenkins> Global Tool Configuration (même pendant l'installation de Jenkin).
Création d'un script d'automatisation
# 6) Nous pouvons créer une nouvelle classe JAVA et la convertir en TESNG ou créer directement une CLASSE TESTNG suivie de la création d'un nouveau fichier XML (testng.xml).
Pour plus de simplicité, deux classes Java ont été créées
# 1) Tutorial1.java - Ce fichier contient l'utilisation de toutes les méthodes telles que GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT en utilisant une URL de test factice https: jsonplaceholder.typicode.com.
Même si l'URL se comporte comme une URL d'origine en renvoyant de telles réponses, mais en réalité sur le serveur, aucune modification n'est apportée. Il s'agit uniquement de démontrer les propriétés et la réaction des services Web lorsqu'ils reçoivent une demande d'un client.
# 2) Tutorial2.java - Ce fichier contient l'exemple en temps réel de GitHub où nous allons lire le commentaire ajouté à l'essentiel.
Remarque : GitHub nécessite une authentification, nous devons donc générer un jeton d'API ou une autorisation de base une fois que nous sommes connectés à GitHub - paramètres sinon nous pouvons générer un jeton d'autorisation à partir de POSTMAN lui-même
TESNG.XML
Voici le fichier XML qui exécutera les deux Tutorial1.java et Tutorial2.java
À des fins de démonstration, j'ai exclu toutes les méthodes à exécuter et activé une seule méthode GET de Tutorial1.java à exécuter. Cependant, si nous souhaitons voir toutes les méthodes exécutées, nous devons remplacer le fichier XML par over TestNG. Dans notre cas, le nom du fichier TestNG est testng1.xml.
Maintenant, si nous exécutons ce qui précède fichier testng1.xml sur Eclipse alors nous obtiendrons ce qui suit sortie de la console.
(TestNGContentHandler) (WARN) Il est fortement recommandé d'ajouter «» en haut de votre fichier, sinon TestNG risque d'échouer ou de ne pas fonctionner comme prévu.
(TestNG) En cours d'exécution:
D: RestAssured restapi testng1.xml
*** OBTENIR LA MÉTHODE ***
Userid - (1) to - (3) Title - (s'il est gênant que l'exercice soit douloureux ou) corporel - (et juste, mais la loi
Et toutes les élections ou au plaisir des aveugles sont
ou dénonçant toute douleur et plaisir qui en résultent
et est disposé à et à partir du labeur d'un odieux ou d'un malaise; et le)
*** OBTENIR LES FINS DE LA MÉTHODE ***
—————————————————–
Tutoriels API REST
Nombre total de tests exécutés: 1, échecs: 0, sauts: 0
—————————————————-
Voici le résultat du test de la suite.
Voici le rapport par défaut généré par TestNG.
Voici le rapport généré par ReportNG.
Puisque nous avons déjà configuré ReportNG, nous pouvons donc nous attendre à une vue claire du nombre total passé, échoué comme ci-dessus.
Exécution de scripts de test à l'aide de l'invite de commandes
- Nous devons démarrer l'invite de commande
- Définir le répertoire de travail comme emplacement de l'espace de travail
- Trouvez le bac / l'emplacement cible
- Rechercher / créer un emplacement de bibliothèque
- Tout d'abord, nous avons besoin d'un ensemble, le répertoire dans lequel le projet existe. Dans mon cas, c'est D: RestAssured restapi
- Java - mot-clé
- cp - C'est le classpath, signifie le chemin dans lequel la classe Java existe dans le projet
- Cibler - C'est le même que le dossier bin lorsque nous travaillons sur un projet Java. Puisque nous travaillons sur le projet Maven, nous aurons donc ce dossier. Sous ce dossier, nous pouvons avoir deux autres dossiers: classes, tests-classes. La classe Java réelle doit exister parmi ces deux dossiers
- Lib - Ce dossier contiendra tous les jars que nous avons utilisés lors de l'exécution du script de test depuis Eclipse. Dans certains cas, le dossier peut ne pas être présent. Par conséquent, nous pouvons avoir besoin de créer un dossier et de conserver tous les fichiers jar, exécutables, etc. à l'intérieur.
- org.testng.TestNG testng1.xml - C'est comme une syntaxe. La dernière partie est testng1.xml est le fichier de ressources de TestNG, qui sera appelé pour exécuter les scripts de test souhaités
La commande complète sera
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Après cela, appuyez sur Entrée
Noter: Nous pouvons voir le dossier bin pendant que nous travaillons sur un projet Java. Cependant, si nous travaillons dans un projet Maven, nous aurons un dossier cible et des classes normales, le dossier test-classes sera présent en dessous.
Créer un fichier BAT et exécuter des scripts de test
Au lieu d'ouvrir l'invite de commande et d'exécuter la commande ci-dessus pour exécuter le script de test, nous pouvons conserver la commande dans un fichier texte et en l'enregistrant, elle lui donne un nom comme,
'Run.bat' (assurez-vous de garder le '' autour de run.bat)
Voici à quoi il ressemble une fois qu'il est créé.
Maintenant, double-cliquez sur «exécuter»
L'invite de commande s'ouvrira et exécutera le script de test et une fois l'exécution terminée, l'invite de commande se fermera.
Intégration de JENKINS à Maven, Java
Nous devons faire 4-5 configurations chez Jenkins pour l'intégrer à Maven, Java et l'exécuter.
Une fois que nous nous sommes connectés à Jenkins,
Goto Manager Jenkins >> Configuration globale de l'outil
définir le chemin d'installation JDK
Remarque : Assurez-vous que la version de Jenkin prend en charge la version JDK / Java. La version 2.73 de Jenkins nécessite au moins la version 1.8 de JDK / JAVA, sinon cela créera des problèmes lors de l'exécution des scripts de test.
Définissez le chemin d'installation de Maven
Après cela, Goto Manager Jenkins >> Configurer les systèmes
Définir le chemin de la variable environnementale
Suivant, Créer un nouvel élément
Nous devons cliquer sur créer un nouveau lien, spécifier le Nom pour le travail, sélectionnez le type de projet comme Freestyle . Pas besoin de s'inquiéter pour d'autres choses pour le moment.
Une fois le travail créé, il ressemblera à ceci.
Cliquez maintenant sur le travail
Suivez les étapes ci-dessous:
- Cliquez sur le lien de configuration dans le panneau de gauche.
- Faites défiler l'onglet Général et cliquez sur le bouton Avancé.
- Cochez la case Espace de travail personnalisé et spécifiez l'emplacement du dossier du projet.
Après ça
- Faites défiler vers le bas pour créer des déclencheurs
- Cochez la case Créer périodiquement
- Définissez un certain temps comme indiqué ci-dessous
Faites défiler vers le bas, définissez le nom de Build. Dans notre cas, il s'agit d'une commande exécutable par lots Windows.
C'est dans le même emplacement où nous avons conservé le fichier run.bat plus tôt, c'est-à-dire le dossier D: RestAssured restapi
Enregistrez toutes les modifications ci-dessus effectuées jusqu'à présent.
Maintenant, attendez que la tâche cron s'exécute. Nous pouvons voir que la construction est lancée.
Une fois la construction exécutée avec succès, nous devons ensuite cliquer sur la construction # 20 comme spécifié dans l'image ci-dessus.
Clique sur le Sortie de la console lien dans le panneau de gauche.
Nous devrions maintenant pouvoir voir la sortie suivante.
Conclusion
REST ASSURED est une bibliothèque JAVA très utile pour automatiser les API REST quelle que soit la langue. Il a de nombreuses options intégrées. En outre, il a de nombreuses versions avec des fonctions intéressantes, des options incluses. Il prend en charge de nombreux formats tels que les requêtes telles que XML, JSON, etc.
Dans ce didacticiel, nous avons expliqué comment automatiser les demandes d'API à l'aide de RESTAssured lors de l'exécution de scripts de test à l'aide de Jenkins. Nous avons également expliqué pourquoi Rest Assured est un meilleur choix pour automatiser les demandes d'API.
Nous espérons que vous avez apprécié la lecture de cette série de tutoriels sur l'API Rest!
lecture recommandée
- Test de l'API REST avec le concombre à l'aide de l'approche BDD
- 10 meilleurs outils de test d'API en 2021 (outils de test d'API SOAP et REST)
- Test de l'API REST avec Spring RestTemplate et TestNG
- Utilisation des requêtes HTTP dans JMeter
- Tutoriel POSTMAN: Test d'API avec POSTMAN
- Les 20 questions et réponses les plus importantes pour les entretiens de test d'API
- Top 10 des meilleurs outils de gestion d'API avec comparaison des fonctionnalités
- Les 36 principales questions d'entrevue Jenkins (pour 2021)