Qu'est-ce que WebService?
Les services Web sont le mécanisme ou le moyen de communication par lequel deux applications / machines échangeront les données indépendamment de leur architecture sous-jacente et de la technologie.
Qu'est-ce que le test de service Web?
Le test des services Web est un type de test logiciel qui valide les services Web. Le but des tests de services Web est de vérifier la fonctionnalité, la fiabilité, les performances et la sécurité d'une API (Application Program Interface). Le test de service Web est similaire au test unitaire dans certains cas. Vous pouvez tester un Webservice manuellement ou créer votre propre code d'automatisation ou utiliser un outil d'automatisation standard tel que Postman.
Pourquoi le WebService est-il nécessaire?
En général, les applications logicielles sont développées pour être utilisées par les êtres humains, où une personne envoie une demande à un service logiciel qui à son tour renvoie une réponse dans un format lisible par l'homme.
À l'ère moderne de la technologie, si vous souhaitez créer une application logicielle, vous n'avez pas besoin de tout créer à partir de zéro. Il existe de nombreux services prêts à l'emploi que vous pouvez connecter à votre application et vous pouvez commencer à fournir ces services dans votre application.
Par exemple, vous souhaitez afficher des informations de prévisions météorologiques dont vous n'avez pas besoin pour collecter, traiter et rendre les données dans votre application. Vous pouvez acheter les services à des personnes déjà bien établies dans le traitement et la publication de ce type de données.
Les services Web nous permettent de faire ce genre d'implémentations.
À titre d'exemple, considérons le WebService suivant
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Il donne la valeur de l'action pour une entreprise.
Trouvons le cours de l'action pour Google (Symbole: GOOG)
La réponse XML donne le cours de l'action.
Ce WebService peut être appelé par une application logicielle utilisant le protocole SOAP ou HTTP.
Protocoles de service Web
Les services Web peuvent être implémentés de différentes manières, mais les deux suivantes sont les approches d'implémentation les plus courantes.
- SOAP (Simple Object Access Protocol)
- REST (architecture de transfert d'état de représentation)
SAVON
SOAP est un protocole standard défini par la norme W3C pour l'envoi et la réception de demandes et de réponses de service Web.
SOAP utilise le format XML pour envoyer et recevoir la demande et, par conséquent, les données sont des données indépendantes de la plate-forme. Les messages SOAP sont échangés entre les applications du fournisseur et l'application réceptrice dans les enveloppes SOAP.
Comme SOAP utilise le protocole de transport http simple, ses messages ne sont pas bloqués par les pare-feu.
DU REPOS
REST signifie REpresentational State Transfer; c'est une architecture qui fonctionne généralement sur HTTP. Le style REST met l'accent sur les interactions entre les clients et les services, qui sont améliorées par un nombre limité d'opérations. REST est une alternative à SOAP (Simple Object Access Protocol) et au lieu d'utiliser XML pour la requête, REST utilise une URL simple dans certains cas. Contrairement à SOAP, les applications RESTFUL utilisent des en-têtes intégrés HTTP pour transporter des méta-informations.
Il existe différents codes que REST utilise pour déterminer si l'utilisateur a accès à l'API ou non, comme le code 200 ou 201 indique une interaction réussie avec le corps de la réponse, tandis que 400 indique une demande incorrecte ou l'URI de la demande ne correspond pas aux API du système. Tous les paramètres de requête API et les paramètres de méthode peuvent être envoyés via des variables POST ou GET .
L'API Rest prend en charge les formats XML et JSON pour les tests d'API WebServices. Il est généralement préférable pour les applications mobiles et Web, car il rend l'application plus rapide et plus fluide.
WSDL
WSDL (Web Services Description Language) est un langage basé sur XML qui sera utilisé pour décrire les services offerts par un service Web.
WSDL décrit toutes les opérations offertes par le service Web particulier au format XML. Il définit également comment les services peuvent être appelés, c'est-à-dire quelle valeur d'entrée nous devons fournir et quel sera le format de la réponse qu'il va générer pour chaque type de service.
Comment tester un service Web?
Pour tester le service Web, vous pouvez
- Tester manuellement
- Créez votre propre code d'automatisation
- Utilisez un outil d'automatisation standard comme SoapUI.
Les tests d'automatisation des services Web impliquent les étapes suivantes -
- Comprendre le fichier WSDL
- Déterminer les opérations fournies par un service Web particulier
- Déterminez le format de requête XML que nous devons envoyer
- Déterminer le format XML de la réponse
- Utiliser un outil ou écrire du code pour envoyer la requête et valider la réponse
Supposons que nous souhaitons tester un service Web qui fournit une fonction de conversion de devises. Il s'agira des taux de conversion actuels entre la devise des différents pays. Ce service que nous pouvons utiliser dans nos applications pour convertir les valeurs d'une devise dans l'autre devise.
Regardons maintenant les étapes ci-dessus
Étape 1 à 4: Comprendre WSDL et déterminer les opérations et les formats XML
Le fichier WSDL du convertisseur de devises peut être vu @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) qui donnera des informations sur les méthodes de service Web de convertisseur de devises qu'il prendra en charge, le paramètre dont nous devons passer et le type de paramètres
… etcÉtape 5: Utilisation d'un outil ou écriture de code pour envoyer la requête et valider la réponse
Il existe de nombreux outils de test WebService disponibles pour tester le service Web SOAP. SoapUI est l'un des outils API les plus populaires qui nous aidera à tester les services Web SOAP. En fait, vous pouvez utiliser n'importe quel langage de programmation capable d'envoyer la requête XML à l'application du fournisseur de services Web via http et capable d'analyser et de valider le XML de réponse par rapport au résultat attendu. Dans ce tutoriel de test des services Web, nous allons tester le WebService
- Utilisation de Java
- Utiliser SoapUI
PARTIE 1) Test des services Web à l'aide de l'API Apache Axis2 (Java).
En règle générale, le service Web prend la demande et envoie la réponse au format XML.
Le projet d'API Apache Axis2 est une API d'implémentation Java, qui sera utilisée pour créer les services Web à la fois côté serveur (fournisseur de services) et côté client (consommateur de services).
Axis2 est capable d'envoyer des messages SOAP et de recevoir et traiter les messages SOAP. Nous pouvons écrire un petit programme Java en utilisant l'API pour créer le service Web. Axis2 générera le WSDL à partir du programme Java qui sera utilisé pour communiquer les services offerts par le service Web. Nous pouvons utiliser le même Axis2 pour générer la classe Java (stub) à partir du fichier WSDL que nous pouvons utiliser comme programme client pour générer la demande de service Web, pour envoyer la demande au point de terminaison du service et pour traiter la réponse.
- Fondamentalement, nous allons créer un programme Java simple dans lequel nous allons instancier la classe stub.
- En utilisant le stub, nous invoquerons la méthode de requête en transmettant toutes les informations requises.
- Le programme de stub convertira cette demande au format de demande XML et lui enverra le point de terminaison de service qui lira la demande et traitera la demande et envoie la réponse au format XML.
- La réponse XML sera convertie en classe Java par stub et renvoyée au programme réel.
Regardons les étapes ci-dessus en détail
Étape a) Téléchargez l'API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi et définissez la variable d'environnement 'AXIS2_HOME'
Étape b) Créez un dossier pour conserver tous les artefacts générés
Ex: C: \ Axis \ Projects \ CurrencyConverter
Étape c) Ouvrez l'invite de commande et accédez à la structure de dossiers dans laquelle vous souhaitez générer les artefacts et exécutez la commande suivante qui générera les stubs
% AXIS2_HOME% \ bin \ WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb -s
Étape d) Une fois la commande exécutée avec succès, vous verrez le dossier avec les fichiers requis.
Étape e) Dans l'étape suivante de ce didacticiel de test des services Web, nous devons créer le programme client, à travers lequel nous enverrons la demande réelle en utilisant les stubs générés. Ouvrez l'éclipse et créez le nouveau projet Java et sélectionnez le dossier que nous avons créé ci-dessus.
Étape f) Ajoutez tous les fichiers JAR liés à axis2 au chemin de construction du projet, qui se trouvera dans le dossier lib du dossier du logiciel axis2
(par exemple: C: \ Axis \ axis2-1.6.2 \ lib)
Étape g) Créez une nouvelle classe Java (ex: Client.Java) et instanciez l'objet stub. En utilisant l'objet stub, nous pouvons appeler toutes les méthodes prises en charge du WebService particulier.
Programme Client.Javapackage org.apache.axis2.currencyconvertor;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;Client de classe publique {public static void main (Java.lang.String args []) {essayer {// Créer l'objet stub en passant l'URL du point de terminaison du serviceCurrencyConvertorStub stub = nouveau CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate est la classe que nous devons utiliser, mentionnez la devise de et vers// L'objet ConversionRate sera le paramètre de l'opération conversionRateConversionRate conversionRate = nouveau ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Créer l'objet ConversionRateResponse, qui va être utilisé pour capturer la réponse// appeler le service conversionRate à l'aide de l'objet stubConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Nous pouvons utiliser l'objet conversionRateResponse pour récupérer la réponse du service ConversionRateSystem.out.println ("Taux de conversion d'INR en USD: + conversionRateResponse.getConversionRateResult ());} catch (Exception e) {e.printStackTrace ();}}}
PARTIE 2) Comment tester à l'aide du service Web SoapUI
Dans SoapUI
- Allez dans Fichier> Nouveau projet Soap
- Entrez le nom du projet et l'emplacement de l'URI WSDL
- Cliquez sur OK
- Développez la première requête et double-cliquez sur «Request1». Il affichera la requête SOAP au format XML.
- Entrez la devise de départ et la devise de destination
- Cliquez sur le bouton Soumettre
- Le XML de réponse sera affiché dans le volet de droite.
Comme vous pouvez le conclure, l'utilisation d'outils de test WebService tels que SoapUI accélère votre effort de test d'automatisation des services Web. SoapUi sera donc au centre de notre apprentissage dans les tutoriels suivants.
Résumé
- Les applications logicielles communiquent et échangent des données entre elles à l'aide d'un WebService
- SOAP et REST sont 2 protocoles populaires pour créer un WebService
- SOAP prend en charge l'échange de données basé sur XML
- REST prend en charge XML, Json ou l'échange de données dans une URL simple pour les tests d'API WebServices.
- WSDL est un langage basé sur XML qui sera utilisé pour décrire les services offerts par un service Web. SOAP est défini à l'aide de WSDL.
- Pour tester WebService, vous pouvez
- Créez votre propre code. Par exemple, utilisez l'API Axis2 pour Java
- Utilisez les outils d'automatisation des tests WebService tels que SoapUI
- Les outils d'automatisation comme SoapUI relanceront vos efforts de test d'automatisation des services Web, nécessiteront moins d'effort de codage que la création de votre propre code à l'aide de l'API Axis2
FAQ
Quelle est la différence entre WebService et WebAPI?
Service Web |
API Web |
|
|
|
|
|
|
|
|
En savoir plus sur les tests d'API Web
Ce tutoriel de test de services Web est rendu possible grâce aux contributions de M. Narender Reddy Nukala