Performance

3 outils pour les tests de performance

Le choix du bon outil pour réaliser ses tests de performance est primordial pour plusieurs raisons :

Tout d'abord, l'outil doit permettre de réaliser les tests de performance sur le parc applicatif que l’on souhaite tester, et donc proposer une couverture protocolaire adéquate. Tous les outils ne permettent pas de tester du Citrix, du SAP ou de l’Oracle Forms par exemple. Il doit aussi correspondre à l’organisation du client, et à sa façon de fonctionner.
Ensuite., le prix ou l’abonnement, est également un critère des plus importants
Enfin, sa simplicité d’utilisation, la qualité de son support, et sa stratégie d’évolution des versions vers les nouveautés du marché sont des critères de choix.

Nous proposons dans cet article un comparatif synthétique de 3 outils.

JMeter

JMeter est un outil de tests de charge open source largement utilisé actuellement, par tous types de client : domaine public, grands comptes, sociétés diverses.
Son interface graphique est simple et efficace. Il permet de réaliser des tests sur toutes les applications Web, Webservices (REST, SOAP), Web 2.0, services de messagerie, etc…
JMeter est livré avec des fonctions (au sens macro) natives permettant l’injection de données dynamiques ou/et de la manipulation de données à la volée durant le tir de charge.

C’est un outil développé en JAVA, qui propose un grand nombre de plug-in vers diverses technologies pour la partie monitoring.

Il peut être utilisé pour les tests réalisés tôt dans le cycle de développement – Shift Left - donc les tests d’API, de Web services et de Microservices - et également pour les tests de bout en bout. Son interface de recording est efficace.
JMeter dispose d’éléments Récepteurs permettant la visualisation des résultats sous forme de graphiques ou de statistiques basiques, et ainsi d’interpréter ses résultats.
C’est un outil complet qui, accompagné d’un outillage de reporting type Grafana, et complété par un outillage de capture de métriques type Prometheus permet de réaliser les tests de charge dans un grand nombre de contexte.

Neoload

Neoload est un outil de test de charge proposé par l’éditeur Tricentis (depuis le rachat de Neotys).
Neoload supporte des protocoles que Jmeter ne propose pas, par exemple Citrix, Oracle Forms, SAP, ...

Il propose également des fonctions intégrées pour aider à la variabilisation des scripts et à la gestion des variables dynamiques.
Dans ses versions récentes, NeoLoad propose un pas important vers l’approche Shift Left, qui permet aux équipes de tester plus tôt dans le cycle de développement logiciel, au niveau API, grâce à de nouvelles fonctionnalités, telles que les tests de performance en code et l’import de fichiers Swagger.
Il propose également en plus de l’outillage de capture de scénario pour la réalisation des scripts et du module de contrôle de l’injection de charge, un module de reporting intégré puissant ainsiqu’un module de monitoring qui permet d’avoir un outil très complet.

De plus il est interfacé avec des outil d’APM, notamment Dynatrace, qui rendent la corrélation des temps de réponse avec les métriques techniques plus aisé à interpeter, et donc apportent une grande plue value pour les préconisations d’amélioration et de tuning des composants techniques.

L’outil est payant, et son modèle de licensing a changé récemment pour le rendre notablement plus cher.

Gatling

Gatling est un outil de tests de performance open source à la base, de plus en plus souvent utilisé, particulièrement dans un contexte ou la société utilisatrice décide de mettre en place les tests de performance très tôt dans le cycle de livraison des release (mode agile principalement) et ou les développeurs sont plus impliqués dans les engagement de performance de leur code. Gatling permet alors de réaliser aisément les tests d’API et de Webservice.
Gatling est « un outil de développeur » dans le sens ou son interface utilisateurs, son organisation, font que les développeurs s’y retrouvent tout de suite, alors que les testeurs traditionnels (utilisateurs de JMeter ou Neoload par exemple) ont du mal à s’y retrouver (j’ai testé …). On peut dire que c’est un outil de tests de performance sous forme de code. Attention Gatling est développé en Scala et nécessite l’apprentissage ou la compétence des bases de ce langage développement.
Pour le reste, les fonctionnalités sont là, proches de celles d’un JMeter et les 2 outils sont comparables dans leurs avantages et leurs limites par rapport à un outil de type Editeur comme Neoload.

A noter que Gatling propose une version payante qui permet par exemple d’avoir accès au support et qui est nécessaire pour pouvoir réaliser des tests en mode distribué (controller + load generators multiples).

A propos de l'auteur

Philippe Boudard

Philippe travaille dans les métiers de la performance applicative depuis plus de 20 ans, 
Il a été consultant, certifié LoadRunner et QALoad, et s’est attaché à toujours rester proche de la technologie et de l’évolution des méthodes et des outils.
Le sens du service auprès de ses clients est ce qui le démarque dans son travail quotidien, ainsi que la formation et le suivi des ses collaborateurs.

Envie d'en savoir plus ?