soapUI et les tests de Web Services

SoapUI est un outil de test de Web Services développé par Eviware. Il existe en 2 versions dont une entièrement gratuite. Je le trouve très utile pour le debug et les tests unitaires de web services, mais aussi pour les tests automatisés et les tests de charge.

Je vous propose de découvrir dans cet article comment utiliser SoapUI pour réaliser des tests unitaires.


Pour étayer la suite de mon propos, je vais utiliser les 2 web services (basiques 😉 ) suivants :

clip_image002clip_image004

Enregistrer les WSDL dans des fichiers XML pour obtenir les fichiers NewWebService1.xml et NewWebService2.xml.

clip_image002[5]

Créer un nouveau projet dans SoapUI

clip_image002[7]

Nommer le nouveau projet

clip_image004[10]

Ajouter les WSDL à tester

clip_image006

Ajout du premier WSDL

clip_image008

« Create TestSuite » : génère les tests de chaque API du Web Service
« Create MockService » : génère des bouchons pour chaque méthode du Web Service

On obtient l’arborescence suivante :

clip_image010

On crée la TestSuite qui va contenir tous nos tests

clip_image012

On ajoute un TestCase qui va contenir un scénario de tests
(Il suffira d’ajouter un nouveau TestCase pour un autre scénario)

clip_image014

On obtient l’arborescence suivante :

clip_image016

Nous allons maintenant ajouter toutes les étapes de notre scénario de test

clip_image018

Premièrement, on va tester la méthode « Hello » du Web Service n°1

clip_image020

Il est possible de préconfigurer certaines assertions dès la création

clip_image022

On configure la valeur « Toto » dans le SAOP qui sera envoyé pour ce test

clip_image024

On ajoute une assertion de type « Contains » car on sait que la réponse devra contenir la chaîne de caractères : « Hello Toto »

clip_image026 clip_image028

clip_image030

On peut dérouler le test qui vient d’être créé

clip_image032

Tout s’est correctement déroulé, on va maintenant ajouter une autre étape à notre scénario : le test de la méthode « Format » du Web Service n°2

clip_image034

On va tester que la méthode renvoie bien une exception quand on passe la valeur « -1 » en paramètre

clip_image002[9] clip_image004[12]

clip_image006[4]
La case « Not SOAP Fault » doit être décochée puisque dans notre test on veut s’assurer de recevoir une SOAP Fault

On ajoute l’assertion de « SOAP Fault », après avoir passé la valeur « -1 » dans le SOAP de la requête

clip_image008[4]
On sait aussi que l’exception contient le message : « erreur de valeur ». On peut donc ajouter une assertion « Contains » sur cette chaine de caractères

On déroule le test pour s’assurer que nos assertions fonctionnent

clip_image010[4]

Simple et efficace 🙂

Dans des prochains articles je vous expliquerai comment relancer et automatiser ces tests et comment faire des tests de charges.

15 réflexions au sujet de « soapUI et les tests de Web Services »

  • Ping : soapUI : tester l’enchainement de Web Services | Blog Objet Direct

  • 22 février 2010 à 10 h 23 min
    Permalink

    simple et pratique

  • 14 avril 2011 à 15 h 26 min
    Permalink

    Ces deux fichier exemple ne sont pas accéptés par soapUI. j’ai le message « Com.eviware.sopaui.support.SoapUIExeption:Error importing wsdl ». D’ailleurs j’ai trouver d’autre fichier (par exemple : http://msdn.microsoft.com/fr-fr/library/bb469924.aspx) qui sont accepté mais ne suivent pas la même syntaxe :
    « »
    au lieu de
    « @WebService() »

    ou

     »

     »

    au lieu de

    « public String hello(String name) {
    return « Hello « +name;
    } »

  • 14 avril 2011 à 15 h 29 min
    Permalink

    Les balises xml du fichier qui fonctionne ne sont pas tracé dans mon message (malgrè une second tentative). Pouvez-vous m’expliquer d’où vient la difficulté qui empèche soapUI d’exploiter vos exemples ? (si besoins envoyez moi vos fichiers)
    Merci
    Testor2

  • 15 avril 2011 à 8 h 33 min
    Permalink

    Quels sont les fichiers que tu essaies d’importer ?

    Dans ta remarque, tu décris des méthodes de classe Java, ce qui n’est pas du tout un WSDL. Un WSDL est un fichier XML décrivant tes services Web, quelque soit la technologie.
    Les classes Java, déployées dans un conteneur de services SOAP vont te permettre de publier un WSDL. C’est lui qu’il faut importer.

    Si tu travailles en .NET, tu utiliseras probablement WCF (Windows Communication Foundation).

  • 15 avril 2011 à 11 h 19 min
    Permalink

    @Jean-Francois SUBLET
    Je n’ai pas chercher à utiliser du java ou du .Net
    J’ai utilisé les 2 web services « basiques » qui commencent l’article. J’ai saisie les lignes de codes indiqués, je les ai nommé « NewWebService1.xml » et « NewWebService2.xml ».
    Hélas soapUI les refuse.

  • 15 avril 2011 à 14 h 14 min
    Permalink

    @Testor2
    Les 2 web services « basiques » qui commencent l’article ne sont pas des web services en l’état. Ce sont des classes Java qui une fois déployées dans un conteneur (par exemple JEE) seront publiées comme web service.

    Seulement à ce moment, tu pourras récupérer un WSDL (un fichier XML) et tu pourras alors l’utiliser comme il est décrit dans la suite de l’article.

  • 20 mai 2011 à 16 h 47 min
    Permalink

    bonjour,
    je souhaiterez savoir si vous connaissez un moyen d’exporter les fichiers en automatique vers un répertoire ?

    merci

  • 1 juin 2011 à 13 h 32 min
    Permalink

    @vishal
    De quel fichier parles-tu ? quel est ton vrai besoin ?

  • 12 juin 2012 à 14 h 07 min
    Permalink

    Bonjour
    Svp j’essai d’interroger une base de donnée à distance et j’ai les WSDL pour interroger cette base il faut une première requête pour avoir un ID puis une deuxième requête dans laquelle on passe cet ID en cookie pour récupérer les données … est ce que c’est possible avec SaopUI et est ce qu’il y a quelqu’un qui peut m’aider … sa fait des semaines que j’avance pas
    Je serai vraiment très reconnaissante et merci d’avance ….

  • 10 août 2013 à 18 h 56 min
    Permalink

    Bonjour,
    Je suis débutant en Soapui et j’aimerai savoir comment faire des tests avec ce outil. J’entends beaucoup parlé du fichier WSDL qui permet d’avoir l’arborescence des tests. Comment généré ce fichier? C’est le développeur qui produit ce fichier aux testeurs pour les tests? ou c’est au testeur d’écrire le code WSDL.

    Merci,

  • Ping : Mission 2 : Neo | Robin Billy

  • 18 janvier 2016 à 12 h 11 min
    Permalink

    J’ai un soucis avec SOAPUI 5.2.1
    A l’exécution, j’ai un message suivant : ‘logon error message’
    Je ne comprends pas

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *