Tests de charge d'un web service Partie 2 : SoapUI

Dans le cycle de développement d’un Web service, après les phases de conception et de réalisation, se pose bien souvent la question de la robustesse.  Pour savoir si un Web service est à la fois performant et endurant il faut réaliser ce que l’on appelle des tests de charge.

Après avoir effectué un test de charge d’un Web service avec Apache JMeter, voyons à présent la marche à suivre avec l’autre outil open source sur lequel nous avons choisi de nous pencher pour cette série : SoapUI.

A propos de SoapUI

SoapUI peut être téléchargé à l’adresse suivante : http://www.soapui.org/

Cet outil est sans doute le plus utilisé dans l’univers de l’open source pour tester des appels de Web services SOAP ou REST. Il peut être également utilisé pour des tests de charge. C’est ce que nous allons voir à présent.

Test de charge avec SoapUI

Scénario : Nous allons reprendre le même web service testé précédemment avec Apache JMeter.

Comment construire le test ?

1) Pour commencer, lancez SoapUI et créez un projet :

Ouverture d'un nouveau projet dans SoapUI

2) Ajoutez un TestCase en sélectionnant la requête puis bouton droit : 

Ajout d'un TestCase dans SoapUI

3) Laissez le nom par défaut du TestSuite

Nom par défaut TestSuite SoapUI4) Idem pour le TestCase

Nom par défaut TestCase SoapUI

 

Ajout requête TestCase SoapUI

5) Créez un test de charge en sélectionnant « Load Test » puis bouton droit > « New Load Test »

Création nouveau test de charge SoapUI

Vous pouvez laisser le nom par défaut.

Nom par défaut Load Test SoapUI

6) Testez la requête « GetCitiesByCountry » de TestSteps en choisissant la France comme pays de test :

Requête GetCities SoapUI

7) Précisez alors le nombre de processus (Threads), la durée du test de charge et la stratégie :

Processus : 5 secondes
Durée : 60 secondes
Stratégie : simple

Processus, durée et stratégie d'un test dans SoapUI

8) Lancez le test en cliquant sur l’icône verte et laissez tourner le test de charge.

9) Résultats après 60 secondes de stress du Web service :

Résultats du test de charge SoapUI

Temps de réponse moyen : 2124 ms
Temps de réponse min : 284 ms
Temps de réponse max : 8460
Nombre d’erreur : 0
Nombre de requêtes totales : 101

10) Vous pouvez exporter ces résultats en fichier csv en faisant :

– Sélectionnez « Show the statistics »

Exportation résultats du test csv SoapUI

– Puis « show the statistics »

Exportation staistiques en csv SoapUI

– Donnez un nom au fichier :

Nom du fichier d'export csv SoapUI

A partir du fichier exporté, vous pouvez faire un graphique des temps moyens de réponse en fonction du nombre de requêtes :

graphique temps moyen réponse SoapUI

Sur ce graphique, on constate que le temps de réponse moyen, s’il est relativement élevé au début, tend à se stabiliser au fil des requêtes. Ce Web service a bien tenu la charge car ses performances ne se sont pas effondrées au cours du temps.

Conclusion

Des outils open source comme Apache JMeter ou SoapUI sont aujourd’hui suffisamment évolués et simples à prendre en main pour réaliser des tests de charges fiables et robustes. Ils sont devenus indispensables car ils peuvent mettre en évidence des effets de palier ou de seuil à partir duquel un Web service peut voir ses performances s’effondrer. Tout l’art de cet exercice réside dans l’élaboration de jeux de test réalistes.

Madjid Djebbar

Comments are closed.