Tutoriel de test des services Web : comment tester ? Apprendre avec l'exemple

Qu’est-ce que WebService ?

Les services Web sont le mécanisme ou le moyen de communication par lequel deux applications/machines échangeront des données indépendamment de leur architecture sous-jacente et de la technologie.

Qu'est-ce que le test de services Web ?

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). Les tests de services Web sont similaires aux tests unitaires dans certains cas. Vous pouvez tester un service Web manuellement, créer votre propre code d'automatisation ou utiliser un outil d'automatisation prêt à l'emploi tel que Postman.

Pourquoi WebService est-il nécessaire ?

En général, les applications logicielles sont développées pour être consommées par des êtres humains, où une personne envoie une requête à un service logiciel qui renvoie à son tour 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 restituer les données dans votre application. Vous pouvez acheter les services auprès de 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 actionnariale d’une entreprise.

Trouvons le cours de l'action Google (Symbole : GOOG)

Test des services Web

La réponse XML donne le cours de l'action.

Test des services Web

Ce WebService peut être appelé par une Application Logicielle utilisant le protocole SOAP ou HTTP.

Protocoles de services Web

Les services Web peuvent être implémentés de différentes manières, mais les deux approches suivantes sont les approches d'implémentation les plus courantes.

  1. SOAP (protocole d'accès aux objets simples)
  2. REST (architecture de transfert d'état représentatif)

SOAP

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 services Web.

SOAP utilise le Format XML pour envoyer et recevoir la demande et donc les données sont des données indépendantes de la plate-forme. Les messages SOAP sont échangés entre les applications fournisseurs et l'application réceptrice dans les enveloppes SOAP.

Comme SOAP utilise le simple protocole de transport http, ses messages ne sont pas bloqués par les pare-feu.

REST

REST signifie REpresentational State Transfer ; c'est une architecture qui fonctionne généralement via 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 simple URL dans certains cas. Contrairement à SOAP, les applications RESTFUL utilisent des en-têtes HTTP intégrés 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 mauvaise demande ou que 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 POSTEZ or ÉCONOMISEZ variables.

L'API Rest prend en charge les formats XML et JSON pour les tests de l'API WebServices. Il est généralement préféré pour Mobile et les applications Web, car cela rend le fonctionnement des applications plus rapide et plus fluide.

WSDLName

WSDL (services Web 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 proposées 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 Web Service ?

Pour tester le service Web, vous pouvez

  1. Tester manuellement
  2. Créez votre propre code d'automatisation
  3. Utilisez un outil d'automatisation prêt à l'emploi comme SoapUI.

Les tests d'automatisation des services Web impliquent les étapes suivantes :

  1. Comprendre le fichier WSDL
  2. Déterminer les opérations fournies par un service Web particulier
  3. Déterminer le format de requête XML que nous devons envoyer
  4. Déterminer le format XML de la réponse
  5. Utiliser un outil ou écrire du code pour envoyer une requête et valider la réponse

Supposons que nous souhaitions tester un service Web fournissant une fonction de conversion de devises. Il s'agira des taux de conversion actuels entre les devises 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

Étapes 1 à 4 : Comprendre WSDL et déterminer les opérations et les formats XML

Devise Convertor Le fichier WSDL peut être vu @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) qui donnera les informations sur la devise Convertor les méthodes de service Web qu'il prendra en charge, le paramètre que nous devons transmettre et le type de paramètres… etc.

WSDL et détermination des opérations et des formats XML

WSDL et détermination des opérations et des formats XML

Étape 5 : Utiliser un outil ou écrire du code pour envoyer la demande 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 plus populaires Outil API ce 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 la réponse XML par rapport au résultat attendu. Dans ce didacticiel de test des services Web, nous testerons le WebService

  1. En utilisant Java
  2. Utiliser SoapUI

PARTIE 1) Tests de services Web à l'aide de l'API Apache Axis2 (Java).

Généralement, le service Web prend la demande et envoie la réponse au format XML.

Le projet API Apache Axis2 est un Java API d'implémentation, 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 Java programme utilisant l’API pour créer le service Web. Axis2 générera le WSDL à partir de Java programme qui sera utilisé pour communiquer les services offerts par le service web. Nous pouvons utiliser le même Axis2 pour générer le Java classe (stub) du fichier WSDL que nous pouvons utiliser comme programme client pour générer la demande de service Web, envoyer la demande au point final du service et traiter la réponse.

  1. Fondamentalement, nous allons créer un simple Java programme dans lequel nous allons instancier la classe stub.
  2. À l'aide du stub, nous invoquerons la méthode de requête en transmettant toutes les informations requises.
  3. Le programme Stub convertira cette demande au format de demande XML et lui enverra le point final du service qui lira la demande, traitera la demande et enverra la réponse au format XML.
  4. La réponse XML sera convertie en Java classe par stub et retourné au programme actuel.

Examinons les étapes ci-dessus en détail

Étape a) Téléchargez l'API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Définissez la variable d'environnement 'AXIS2_HOME'

Test de services Web à l'aide de l'API Apache Axis2 (Java)

É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

Test de services Web à l'aide de l'API Apache Axis2 (Java)

Étape d) Une fois la commande exécutée avec succès, vous verrez le dossier contenant les fichiers requis.

Test de services Web à l'aide de l'API Apache Axis2 (Java)

Étape e) Dans l'étape suivante de ce didacticiel de test de services Web, nous devons créer le programme client, via lequel nous enverrons la demande réelle à l'aide des stubs générés. Ouvrez l'éclipse et créez le nouveau Java projet et sélectionnez le dossier que nous avons créé ci-dessus.

Test de services Web à l'aide de l'API Apache Axis2 (Java)

Étape f) Ajoutez tous les fichiers jar liés à axis2 au chemin de construction du projet, qui se trouveront dans le dossier lib du dossier du logiciel axis2

(par exemple : C:\Axis\axis2-1.6.2\lib)

Test de services Web à l'aide de l'API Apache Axis2 (Java)

Étape g) Créer un nouveau Java classe (ex : Client.Java) et instancier un objet stub. En utilisant l'objet stub, nous pouvons appeler toutes les méthodes prises en charge du WebService particulier.

Test de services Web à l'aide de l'API Apache Axis2 (Java)

Client.Java Program
package 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;

public class Client {
 public static void main(Java.lang.String args[]) {

  try {

       //Create the stub object by passing the service end point url
       CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx");
       //ConversionRate is the class which we have to use mention the from and to currency
       //ConversionRate object will be the parameter for the conversionRate operation
       ConversionRate conversionRate = new ConversionRate();
       conversionRate.setFromCurrency(Currency.USD);
       conversionRate.setToCurrency(Currency.INR);

       //Create the ConversionRateResponse object, which is going to be used to catch the response
       //call the conversionRate service using the stub object
       ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate);

       //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service
       System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult());

       } catch (Exception e) {
       e.printStackTrace();
      }
    }
}

PARTIE 2) Comment tester l'utilisation du service Web SoapUI

Dans SoapUI

  1. Allez dans Fichier > Nouveau projet Soap
  2. Entrez le nom du projet et l'emplacement de l'URI WSDL
  3. cliquez sur OK

Test à l'aide du service Web SoapUI

  1. Développez la première requête et double-cliquez sur 'Request1'. Il affichera la requête SOAP au format XML.
  2. Saisissez la devise de départ et la devise de destination.
  3. Cliquez sur le bouton soumettre
  4. La réponse XML sera affichée dans le volet de droite.

Test à l'aide du service Web SoapUI

Comme vous pouvez en conclure, l'utilisation d'outils de test de services Web tels que SoapUI accélère vos efforts de tests d'automatisation des services Web. Par conséquent, SoapUi sera au centre de notre apprentissage dans les didacticiels 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 des outils d'automatisation des tests WebService comme SoapUI
  • Les outils d'automatisation tels que SoapUI relanceront vos efforts de tests d'automatisation des services Web et nécessiteront moins d'efforts de codage que la création de votre propre code à l'aide de l'API Axis2.

QFP

Service Web API Web
Défini par le W3C, toutes les communications et échanges de données sont basés sur XML La communication et l'échange de données de l'API Web peuvent être XML, JSON ou des données simples
Il a défini des normes – WSDL Aucune norme définie
Vous ne pouvez pas compresser les données mais vous pouvez compresser la requête HTML Vous pouvez compresser les données
Exemple : SAVON Exemple : REPOS

En savoir plus sur Tests d'API Web

Ce didacticiel sur les tests de services Web est rendu possible grâce aux contributions de M. Narender Reddy Nukala