DotnetDojo

Développer des applications modernes avec les technologies Microsoft et Open source

  • Blog
  • Vidéos
  • Formations
  • Outils

10+1 outils de tests de charge pour votre application web

La problématique

Généralement, une fois le développement de l’application terminée, elle est mise en production.
Seulement voilà, le succès peut arriver rapidement et il convient donc de vérifier au minimum si l’application est viable avec un grand nombre d’utilisateurs.
Pour vérifier cela, il suffit de lancer des tests de charge (stress tests en anglais) sur son application (idéalement dans un environnement proche de celui de production).

Je vous propose de découvrir des outils que vous pouvez utiliser gratuitement pour effectuer ces tests.
Ces outils s’appliquent à tous les types d’application Web (donc pas seulement .NET mais aussi Java, PHP, Python, Ruby…).

Les outils de tests de charge

Pylot

pylot
Pylot est un outil open source, gratuit, pour tester les performances et la montée en charge de services web. L’outil permet de créer des requêtes concurrentes, de vérifier les types de réponse (ex: HTTP 200) et de produire des rapports.
Les tests sont écrits en XML ce qui est donc facile d’accès. L’outil peut aussi être contrôle avec Python ou Perl par exemple.

Multi-Mechanize

multi-mechanize
Multi-Mechanize est un peu le successeur de Pylot. Les concepts ne sont pas identiques. Pour écrire des tests de charge, il faudra connaitre Python.
Par contre, l’outil est sympa car il génère des rapports avec de beaux graphiques (temps de réponses / nombre de connexion…).

Tsung

tsung
Tsung est un outil open source, gratuit et surtout multi-protocole. Il permet de faire des tests de charge sur HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP et Jabber/XMPP.
L’outil est basé sur des plugins, ce qui permet d’ajouter des protocoles facilement (vous pouvez en écrire vous-même).
Tsung peut aussi mesurer le niveau d’utilisation du CPU et de la mémoire sur un ou plusieurs serveurs. Ceci permet donc de mesurer plus finement l’utilisation de votre serveur (pas seulement le temps de réponse par exemple). Une société propose aussi du support commercial pour ce produit.

Apache JMeter

jmeter
JMeter est un outil très connu de la suite Apache. JMeter est une application Java, ce qui permet de la lancer sur toutes les plateformes. Elle propose une interface visuelle (GUI) pour créer de tests assez simplement. JMeter est très puissant et je l’ai souvent utilisé sur des projets.
Il permet de tester les protocoles Web (HTTP, HTTPS, SOAP), Base de données (via JDBC), LDAP, Email (SMTP, SMTPS, POP3, POP3S et IMAP). Les fonctionnalités peuvent aussi être étendues par des scripts additionnels.

WCat (Web Capacity Analysis Tool)

wcat
WCat est un outil gratuit de test de charge proposé par Microsoft pour son serveur IIS. L’outil permet de simuler des centaines de connexions à un ou plusieurs site internet. Il est extensible par des DLL que vous pouvez écrire.
L’outil se lance en ligne de commande et peut se scripter (wscript).

ab

ab
ab est un petit outil que l’on retrouve très souvent dans les vidéos de démonstration de Microsoft. En fait, l’outil permet de lancer des requêtes parallèles plusieurs fois à la suite. Il retourne ensuite les métriques sur le temps de réponse (min, max, moyen), le nombre de réponses valides, etc.
L’outil est proposé dans la suite Apache. Il faut donc télécharger Apache pour Windows pour l’utiliser.

http_load

http_load
http_load est un outil simple qui fait bien son travail. L’application permet d’appeler une URL plusieurs fois avec plusieurs connexion simultanées. L’outil permet donc de tester la charge pour une page seulement. Il retourne les résultats en ligne de commande (temps de réponse, durée / requête, nombre de résultats valides…).

Web Polygraph

web-polygraph
Web Polygraph est une application gratuite de tests de charge multi-protocole. L’outil supporte HTTP, FTP, les proxys HTTP et SOCKS. Il gère aussi l’authentification HTTP ou par LDAP.
Un plus, la société qui propose l’outil (gratuitement) fournit également un support commercial.

fwptt

fwptt
fwptt est un petit outil simple qui permet d’enregistrer des requêtes à partir d’un navigateur (requêtes normales ou AJAX). Vous pouvez ensuite charger le script pour le rejouer plusieurs fois. Ce qui est sympa, c’est que le script généré est du C#. Vous pouvez donc en faire ce que vous voulez (par exemple, lancer 10 threads avec le même script).

Curl-Loader

curl-loader
Curl Loader est un outil gratuit, open source, qui permet de simuler des connexions simultanées grâce à des scénarii clients. Il peut aussi simuler des connexions depuis plusieurs IP. Vous pouvez par exemple lui demander de lancer un scénario utilisateur composé d’une page d’authentification, de pages de navigation dans le suite, puis d’une page de déconnexion (ce qui ressemble au parcours d’une vraie personne).
L’outil gère les cookies, plusieurs protocoles (HTTP(S), FTP(S), SCP, SSH, LDAP, TFTP, Telnet…).

En bonus, Selenium

selenium
A l’origine, Selenium est une framework de tests fonctionnels pour vos applications Web. Néanmoins, je vous propose aussi de l’utiliser comme outil de tests de charge. En effet, Selenium permet d’enregistrer des séquences de navigation depuis votre browser (Firefox). Ces séquences peuvent ensuite être scriptées, variabilisées puis rejouées plusieurs fois depuis plusieurs machines en parallèle. Bref, vous aurez tout ce qu’il faut pour lancer des requêtes proche d’un vrai scénario de navigation.

A vous de vous exprimer

Avez-vous déjà essayé ces outils ? Quels sont vous retours ? Lesquels sont les plus efficaces ?

[ninja-inline id=3695]

Besoin de résultats rapides ?

Découvrez les formations vidéos que je propose :

  

 

Formations en présentiel (dans toute la France)

Découvrez également les formations C# et .NET que je donne en présentiel (en France)

Trackbacks

  1. Jmeter v2.11 implementation with Glassfish 4.0 | Java, Jee & co dit :
    30 mai 2014 à 9 h 32 min

    […] @see load test tools (French) […]

A propos de DotnetDojo

Pascal Lacroix

Je m’appelle Pascal et je suis passionné par le développement logiciel, l’efficacité et l’entrepreneuriat. Sur DotnetDojo, je vous propose des méthodes pour apprendre à développer des applications modernes avec les technologies Microsoft et Open Source.

En savoir plus

Liens complémentaires

  • A propos de DotnetDojo
  • 18 principes pour professionnaliser le développement logiciel
  • Boite à outils du développeur
  • Tous les articles
  • Liste des formations
  • Contact

Copyright 2019 Jupiteo · Mentions légales · Contact · CGV · Offres d'emploi .NET · Formations Dotnet