soapuilesson1

March 18, 2018 | Author: Naho Algérienne | Category: Software Testing, Web Service, Service Oriented Architecture, Xml, World Wide Web


Comments



Description

Atelier SOA – Web ServicesBARON Mickaël – Février 2011 Leçon n°1 : Tests fonctionnels de Web Services avec SOAP-UI Temps estimé : ~1 heure 30 minutes Le but de cette première leçon est d’apprendre à inspecter et à invoquer un Web Services via l’outil SOAP-UI. La leçon insiste sur la découverte des standards WSDL et SOAP et sur l’outillage proposé par SOAP-UI pour réaliser des tests fonctionnels (simulation, test de performance, validation de messages SOAP, …). Note : cette leçon est inspirée des articles publiés par Meera SUBBARAO sur le site de DZone (http://architects.dzone.com/users/meera) Buts pédagogiques : lecture d’un WSDL, lecture et écriture de messages SOAP, invoquer une opération d’un Web Service sans programmation, création de tests fonctionnels, simulation de Web Services à partir de sa description. Exercice 1 : Inspecter et invoquer des Web Services But : Construire un projet SOAP-UI à partir de la description WSDL d’un Web Service puis invoquer certaines opérations. Le site de la National Oceanic and Atmospheric Administration’s (NOAA) est un service du gouvernement des Etats-Unis qui fournit un accès à la base complète des conditions climatiques sur le sol américains. La NOAA fournit par le biais d’un Web Service des opérations permettant d’interroger cette base pour connaître par exemple le temps dans une région donnée. Dans cet exercice nous nous intéressons à appeler des opérations pour afficher les conditions métérologique sur la ville de Manhattan. Description : Etapes à Suivre 1. Avant d’utiliser l’outil SOAP-UI, nous souhaitons vérifier que le document WSDL du Web Service de la NOAA est disponible. Par ailleurs cela nous permettra de visualiser ce document. Ouvrir une instance de votre navigateur préféré puis saisir l’URL suivante : http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl 2. Examiner le document WSDL en identifiant clairement les opérations disponibles. 3. Démarrer ensuite SOAP-UI. 4. Construire un nouveau projet via le menu File -> New soapUI Project BARON Mickael [email protected] / [email protected] -1- une durée et un format de date. les valeurs Latitude/Longitude doivent être 40.wsdl 6. Dans le corps de l’élément zipCodeList saisir la valeur 10001 qui correspond au code postal de la ville de New York puis soumettre le message SOAP. BARON Mickael [email protected]@gmail. numDays : 1 et format : 24 hourly 12.7198 . Une fois le projet créé. puis valider (laisser les paramètres par défaut) 7. numDays : 1 et format : 24 hourly).com -2- . Invoquer l’opération NDFDgenByDayLatLonList qui retourne des informations météorologiques en fonction d’une liste de couple valeurs latitude/longitude. startDate :2011-MM-DD (ou MM est le mois [01] et DD est le jour [25]). 9. SOAP-UI génère affiche toutes les opérations disponibles et crée un squelette de chaque requête. Vérifier le résultat de la réponse.993 11. une durée et un format de date (40. Cette opération retourne des couples de valeurs Latitude/Longitude en fonction d’une liste de code postaux américains.7198. Utiliser les valeurs suivantes : latitude : 40.weather. Invoquer l’opération NDFDgenByDay qui retourne des prévisions météorologiques en fonction de la latitude.-73.5. Double cliquer sur le nœud « Request 1 » de l’opération LatLonListZipCode.fr / baron. 10.993 .993 . une date. 8. saisir la précédente adresse de la description du Web Service : http://www. Nous pouvons dés à présent invoquer une opération de ce Web Service. longitude : -73. longitude.7198/-73. une date. Dans le champ Project Name saisir le nom du projet SOA-Labs1-NOAA. startDate : 2011-MM-DD . Dans le champ « Initial WSDL/WADL ».gov/forecasts/xml/DWMLgen/wsdl/ndfdXML. Cliquer droit sur le nœud du projet SOA-Labs1-NOAA puis choisir New TestSuite.fr / baron. 3. clique droit et faire Add to TestCase.mickael@gmail. Nommer le nouveau cas de test LatLonListZipCode Test Case puis valider. Cet exercice montre comment invoquer une opération et vérifier des assertions (contraintes qui doit être vérifiées) à travers une suite de tests. Une boîte de dialogue avec un composant à choix multiples est proposée. Description : Etapes à Suivre 1. Réitérer l’ajout d’un nouveau cas de test pour les opérations NDFDgenByDay et NDFDgenByDayLatLonList en nommant respectivement les cas de test NDFDgenByDay Test Case et NDFDgenByDayLatLonList Test Case. 2. BARON Mickael baron@ensma. vous devriez obtenir des informations concernant la prévision métérologique sur la ville de New York. Laisser les paramètres par défaut (voir figure ci-dessous) 6. Cela peut correspondre par exemple à l’invocation d’une ou plusieurs opérations du Web Service. 5. Exercice 2 : Construire une suite de tests simple (TestSuite) But : Construire une suite de tests et définir des assertions pour vérifier le bon fonctionnement du Web Service La création d’une suite de tests permet d’enchaîner un ensemble de cas de tests (TestCase). Saisir le nom SimpleTestSuite comme nom de la suite de tests. Un cas de test regroupe un ensemble d’étapes à réaliser. Choisir la valeur Simple TestSuite -> Create new TestCase puis valider. Pour ajouter de nouveau cas de test.13. Sélectionner la requête de l’opération LatLonListZipCode.com -3- . Vérifier le résultat de la réponse. nous allons réutiliser les valeurs liées aux précédentes invocations (voir exercice 1). 4. seule l’assertion SOAP Response est définie.993. Ajouter une assertion Contains permettant de vérifier si une valeur donnée est présente dans la réponse 11. 12. BARON Mickael [email protected]@gmail.com -4- . Par défaut. Cliquer sur le bouton Assertions situé en bas à gauche de la fenêtre requête ouverte précédemment 10. Au niveau du message SOAP de la requête. Lors de l’invocation d’une opération la réponse peut être associée à une assertion de manière à garantir que le test a réussi ou pas. Exécuter ces cas de test (flèche verte en haut à gauche) et vous devriez réussir les invocations des opérations. Double cliquer sur la requête du cas de test LatLonListZipCode Test Case pour ouvrir le contenu de la requête SOAP.-73.7. Une boite de dialogue Contains Assertion s’ouvre. 8. changer la valeur contenue dans le corps de l’élément zipCodeList par la valeur 20001. Les trois cas de test sont définis dans la suite de tests. Cette assertion vérifie qu’un message SOAP est correctement retourné au client SOAP-UI.7198. Dans le champ Content indiquer la valeur 40.fr / baron. 9. créer une nouvelle suite de tests que vous appellerez Complex TestSuite.NDFDgenByDayLatLonList Test Case cliquer sur le bouton « Setup Script » et saisir le code Groovy1 ci-dessous qui permet de charger les propriétés d’un fichier et initialiser celles définies précédemment. 4. 5.mickael@gmail. La sortie d’une opération est transférée dans l’entrée d’une autre opération. De cette façon pour changer les paramètres d’invocation il n’est plus nécessaire de modifier la configuration du projet SOAP-UI. 3. 1 Groovy est un langage de script destiné à la plate-forme Java -5- BARON Mickael baron@ensma. faire bouton droit de la souris. Ces valeurs sont chargées puis stockées dans la suite de tests. Créer une seconde propriété zipCode dont la valeur par défaut est 10001.993 n’apparaît pas dans la réponse. dans les tests précédents l’enchainement des opérations se fait de manière manuelle. Au niveau du nœud du cas de test. 2. Exercice 3 : Construire une suite de tests complexe (TestSuite) But : Enchainer des appels à des opérations en séquence. Ainsi nous montrons dans cet exercice comment enchainer les invocations des opérations LatLonListZipCode et NDFDgenByDayLatLonList en utilisant des scripts pour transférer automatiquement la sortie à l’entrée d’une opération.com . Une nouvelle fenêtre « Properties » est affichée. Créer une propriété startDate dont la valeur par défaut est 2011MM-DD. puis Add Step et enfin Properties (laisser le nom par défaut). Au niveau de la fenêtre du cas de test LatLonListZipCode . Description : Etapes à Suivre 1. Le cas de test LastLonListZipCode Test Case ne doit pas passer. L’assertion sur le contenu n’est pas correcte puisque la valeur 40. Pour initialiser les entrées de l’opération LatLonListZipCode un fichier de propriétés est utilisé contenant la date de départ (startDate) et le code postal (zipCode). Exécuter de nouveau la suite de tests.7198. scripts SOAP-UI via Groovy Précédemment nous avons vu comment créer des cas de tests en ajoutant des assertions pour vérifier le bon fonctionnement d’une opération. Définisser dans cette suite de tests un cas de tests nommé LatLonListZipCode NDFDgenByDayLatLonList Test Case.13.fr / baron. Le résultat attendu est celui présenté sur la figure ci-dessous.-73. Toutefois. A partir du projet SOA-Labs1-NOAA. Modifier le contenu du fichier de la manière suivante 8. BARON Mickael baron@ensma. étape 3). Ajouter au cas de tests la requête de l’opération LatLonListZipCode (voir exercice 2.fr / baron. 9. Modifier le message SOAP de la requête de ce deuxième cas de test de manière à ajouter la valeur ${Properties#zipCode} dans la liste des codes postaux (voir résultat attendu sur la figure ci-dessous). Créer à la racine du répertoire c:/ un fichier nommé [email protected] -6- . Une deuxième étape a été ajoutée dans le cas de test.6.txt 7. fr / baron. Une quatrième étape a été ajoutée dans le cas de test. Des assertions sont également réalisées pour assurer que la réponse soit correcte. Ce script extrait des informations issues de la réponse XML de l’opération appelée. Ajouter au cas de tests la requête de l’opération NDFDgenByDayLatLonList (voir exercice 2. Ajouter le code Groovy comme montré sur la figure ci-dessous. à ajouter la valeur ${Properties#startDate} pour la date de départ (élément startDate). étape 3). une nouvelle étape qui est un script Groovy. 11. 13.10.mickael@gmail. Modifier le message SOAP de la requête de ce quatrième cas de test de manière à ajouter la valeur ${latlon} dans la liste des latitudes et longitudes (élément listLatLon). Ajouter dans le cas de tests. Nommer ce script Parse LatLonListZipCode Response. 12.com -7- . BARON Mickael baron@ensma. voir résultat attendu sur la figure ci-dessous. fr / baron.com -8- . 15. une dernière étape qui est un script Groovy. BARON Mickael baron@ensma. Ce script extrait des informations issues de la réponse XML et effectue des assertions pour vérifier que le comportement de cette opération est correct. Ajouter le code Groovy comme montré sur la figure ci-dessous. Ouvrir l’éditeur de la suite de tests et exécuter la suite.mickael@gmail. 16. Nommer ce script Parse NDFDgenByDayLatLonList Response.14. Ajouter dans le cas de tests. cliquer droit et créer un New MockService appelé MockService NOAA 2. Description : Etapes à Suivre 1. Dans cet exercice nous considérons que l’appel à l’opération LatLonListZipCode n’est plus autorisé (opération en maintenance). Choisir l’opération LatLonListZipCode dans la liste des opérations disponibles et faire Add to MockService [email protected] / baron.7198 et -73. Une réponse est automatiquement créée (Response 1). MockResponse) à partir d’une description WSDL La simulation d’un Web Service est utilisée dans le cas où l’implémentation du Web Service n’est pas encore implémentée ou si le Web Service est actuellement dans un état d’indisponibilité (serveur indisponible dû à une défaillance).Exercice 4 : Simuler un Web Service à partir de sa description WSDL But : Simuler un Web Service (MockService.com -9- . Modifier le contenu en s’assurant que la valeur de la latitude et de la longitude correspondent aux valeurs suivantes : 40. A partir du projet SOA-Labs1-NOAA. Par conséquent nous mettons en place une simulation du comportement de cette opération.993 BARON Mickael baron@ensma. Au niveau de l’opération LatLonListZipCode deux requêtes sont maintenant disponibles (voir figure ci-dessous). 6.dzone. Sélectionner la réponse (Response 1) de MockService NOAA. Démarrer la simulation de MockService NOAA (bouton droit sur MockService NOAA puis Start Minimized) 9.com -10- .dzone.org/: site de l’outil BARON Mickael baron@ensma. Exécuter la suite de test pour visualiser le résultat.dzone. Pour aller plus loin … • • • • http://architects.com/articles/functional-web-services-1 : tutoriel sur SOAP-UI http://architects.mickael@gmail. Ajouter la requête (Request From MockService NOAA) au cas de test LatLonListZipCode NDFDgenByDayLatLonList Test Case défini dans l’exercice 3 (ComplexTestSuite). 5. Déplacer la nouvelle requête de l’opération LatLonListZipCode en deuxième position puis désactiver la requête Request 1 (voir figure ci-dessous).4. Choisir Create New et définir comme nom Request From MockService NOAA.com/articles/functional-web-services-2 : tutoriel sur SOAP-UI http://architects. 7.soapui.com/articles/functional-web-services-3 : tutoriel sur SOAP-UI http://www.fr / baron. faire bouton droit puis Open Request. 8.
Copyright © 2024 DOKUMEN.SITE Inc.