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]](http://blog.objetdirect.com/wordpress/wp-content/uploads/2009/12/clip_image00210_thumb.gif)
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 ») :

Le champ à remplacer (la « Target ») :

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

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

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

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’ :

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