soapUI : tester l’enchainement de Web Services

Dans un précédent article, je vous ai montré comment tester unitairement un Web Service. Cette fois-ci, nous allons aller un peu plus loin en testant l’enchainement de plusieurs Web Services.

Comme nous l’avons vu chacun de nos tests unitaires se trouve dans un arbre. Il est alors possible de lancer l’ensemble des tests de la suite, ou toutes les étapes d’un scénario, simplement en double cliquant sur le nœud correspondant de l’arbre. (Nœuds : TestSuite ou TestCase)

Une fenêtre s’ouvre et permet de voir les résultats

clip_image002[10]

A peine plus compliqué, il est aussi possible de récupérer une valeur dans une réponse et de l’injecter dans le test suivant.

Exemple d’utilisation : Dans nos jeux de tests, on veut réaliser l’enchainement suivant :

  • Créer une commande (createOrder)
  • Annuler la commande qui vient d’être créée (cancelRequestNumber)

sachant que ce dernier service prend en paramètre un « request number » qui est renvoyé dans la réponse du « createOrder ».

Pour récupérer cette valeur et remplir notre requête « cancelRequestNumber », on utilise la fonctionnalité offerte par soapUI : le « Property Transfer ».

La valeur à récupérer (la « Source ») :

image

Le champ à remplacer (la « Target ») :

image

On ajoute un « step » ‘Property Transfer’ à notre Test Case « PropTransfer » :

clip_image006

On donne un nom au remplacement automatique qui sera effectué, à chaque exécution des tests :

clip_image008

On configure les chemins vers les champs qui nous intéressent :

image
Les chemins représentent les nœuds XML, de la requête et de la réponse SOAP, à parcourir pour atteindre les champs voulus

On place maintenant le « step » ‘Property Transfer’ entre les 2 tests (createOrder et cancelRequestNumber), de façon à obtenir un enchainement logique dans notre TestCase ‘PropTransfer’ :

clip_image012

On peut maintenant dérouler l’ensemble du Test Case 🙂

13 réflexions au sujet de « soapUI : tester l’enchainement de Web Services »

  • 4 décembre 2009 à 11 h 28 min
    Permalink

    Merci pour cet article très utile pour tous ceux qui travaillent avec les web services.
    Le test du web service n’est jamais aisé, cet outil devrait nous simplifier la vie.

  • Ping : Tweets that mention soapUI : tester l’enchainement de Web Services | Blog Objet Direct -- Topsy.com

  • 4 décembre 2009 à 21 h 41 min
    Permalink

    Ça fonctionne aussi pour choper des valeurs dans une requête SOAP qui contient des variables ?

    J’avais trouvé context.expand() pour ça, dans un step Groovy, mais pas un Property Transfer.

  • 7 décembre 2009 à 10 h 59 min
    Permalink

    Salut Marmotte,
    Je ne suis pas sûr d’avoir compris ta question 🙁

    Tu veux récupérer une variable dans la requête SOAP « Source », c’est bien ça ?

    Par exemple, si dans ta requête SOAP Source, tu as mis :
    ${#Project#login}

    tu veux être capable de récupérer la valeur de « Project#login » pour la placer dans une autre requête ?

  • Ping : soapUI : pré-remplir les champs d’une requête | Blog Objet Direct

  • Ping : soapUI et les tests de Web Services | Blog Objet Direct

  • 7 juillet 2010 à 12 h 11 min
    Permalink

    Bonjour,
    La version 3.5.1 permet les requêtes JDBC (Oracle, Informix), on peut aussi envoyer les entrées comme les sorties dans les variables (global.properties dans Préférences), puis s’en servir dans d’autres requêtes.
    J’utilise cet outil au quotidien, c’est du bonheur ! :o)

  • 21 octobre 2010 à 14 h 26 min
    Permalink

    Bonjour,
    Je n’ai pas le wizard dans ma version (pourtant la dernière) ; est-ce une option ? du coup, vu que je ne suis pas un cador du Xpath, je ne m’en sors pas sur mon wsdl.
    Avez-vous une idée ?

  • 21 avril 2011 à 9 h 45 min
    Permalink

    je n’arrive pas a declarer le chemin ???

  • 21 avril 2011 à 9 h 45 min
    Permalink

    comment tu sais ce que tu met dans le declare namespace?

  • 9 mai 2011 à 12 h 26 min
    Permalink

    @madas
    Tu peux cliquer sur le bouton « ns: » pour déclarer automatiquement les namespace.

  • 9 mai 2011 à 12 h 31 min
    Permalink

    @Vidocq
    Le wizard dont tu parles est une fonctionnalité de la version Pro.

  • 18 avril 2013 à 10 h 21 min
    Permalink

    tout d’abord merci pour cet article.
    Débutant avec soap ui, je souhaite exécuter 10 fois le même web services. C’est un test fonctionnel que je souhaite réaliser.

    Pourriez-vous m’indiquer la marche à suivre s’il vous plait ?

    Merci infiniment.

Laisser un commentaire

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