JMeter

Un article de Wikipédia, l'encyclopédie libre.

JMeter
Développeur Apache Software Foundation
Dernière version 2.3.1
Environnement Multi-plateforme
Type Outil de test en charge
Licence licence Apache
Site web Site officiel

JMeter est un projet libre de Jakarta permettant d'effectuer des tests de performance d'applications et de serveurs selon différents protocoles.

JMeter est entièrement écrit en Java, ce qui lui permet d'être utilisé sur tout système d'exploitation supportant une machine virtuelle Java (JVM).

Il permet de simuler le comportement de plusieurs utilisateurs simultanés d'une application Web. Au fur et à mesure de ses développements, il a été étendu et permet maintenant de tester d'autres types d'applications: serveurs ftp, serveurs de services Web, bases de données accessible via jdbc, serveurs TCP-IP...

Il mesure le temps de réponse de chaque requête et produit des statistiques de ces temps de réponse.

Il contient les principales fonctionnalités de ce type d'outil: Utilisation d'un jeu de données externalisées, enregistrement de scénarios web, scénarios "dynamiques", s'adaptant aux réponses des serveurs, détection d'erreurs, extensibilité, gestion des cookies et des réécritures d'url, lancement des tests à partir de plusieurs postes... Par contre il ne fait pas d'"IP spoofing" (simulation de plusieurs adresses IP à partir du même poste de test).

Des pré/post processeurs de tests sont disponibles permettant par exemple d'extraire des données de résultats de tests. Les résultats des tests peuvent être visualisés de différentes manières et peuvent également être exportés sous fichier au format XML.

Sommaire

[modifier] Points intéressants

Le spectre des tests de performances réalisables est assez large. Il y a moyen de tester les performances de scripts SQL, de requêtes HTTP/SOAP/EJB, d'appels à des classes Java et autres encore. L'interface graphique de JMeter offre des possibilités de faire des tests multi-thread, de créer des boucles et contrôleurs de tests plus spécifiques.

Ses principales fonctionnalités sont :

  • Test de performance
  • Simulation de trafic pour vérifier la robustesse selon le niveau de trafic
  • Réalisation de résultats statistiques sous plusieurs formes graphiques et textuelles

[modifier] Composants de base de Apache JMeter

  • Test Plan : Emplacement à partir duquel on définit ce que l'on test
  • Thread Group : Emplacement à partir duquel on définit les paramètres de la simulation :
  • Number of Thread : nombre d'utilisateurs qui se connectent.
    • Ramp-up period (Période de chauffe) : intervalle de temps où ces utilisateurs se connectent.
    • Loop Count (Compteur de boucle) : nombre de fois où ces utilisateurs se connectent.
      • L'option Forever : spécifie que les utilisateurs se connectent indéfiniment.
  • WorkBench : Emplacement permettant de garder les composants de test non utilisés.
  • SSL Manager : Composant permettant d'utiliser les connexions sécurisées.

Apache JMeter contient aussi 2 types de contrôleurs :

  • Samplers : requêtes que l'on peut envoyer à un serveur ou une application Web pour tester ses ressources. Apache JMeter inclut les requêtes FTP, les requêtes HTTP, les requêtes JDBC, les requêtes objet Java, les requêtes LDAP, les requêtes SOAP/XML-RPC et les requêtes WebService (SOAP).
  • Logical Controllers : permet la spécification des paramètres de test à effectuer. Apache JMeter inclut 5 types de Logical Controllers:
    • Interleaves Controllers et Random Controllers : composants permettant d'envoyer des requêtes dans un ordre aléatoire.
    • Loop Controllers : composant permettant d'envoyer plusieurs fois les requêtes spécifiées.
    • Once Only Controller : composant permettant de lancer une seule fois les requêtes spécifiées.

Apache JMeter permet de gérer les paramètres de certains sites ou serveurs (cookies, sites sécurisés). Les composants disponibles pour gérer ces paramètres sont les suivants :

  • HTTP, FTP, LDAP, JDBC et Java Request Defaults : Composants permettant de définir des paramètres par défaut, ils seront utilisés pour toutes requêtes.
  • HTTP Authorization Manager : Composant fournissant un identifiant et un mot de passe pour les sites où l'accès est restreint.
  • HTTP Cookie Manager : Composant permettant de stocker, d'envoyer et de spécifier des cookies à envoyer au serveur.
  • HTTP Header Manager : Composant permettant de définir l'entête HTTP des requête envoyées.

Apache JMeter donne la possibilité d'insérer une pause entre chaque requête envoyées. Ces Timers. Les différents Timer disponible sont :

  • Constant Timer : Composant permettant d'insérer un temps constant entre chaque requête envoyée.
  • Gaussian Random Timer : Composant permettant d'insérer un temps aléatoire entre chaque requête envoyée.

L'analyse des réponses des serveurs se fait par des assertions, il en existe 4 types :

  • Response Assertion : Vérifie si une chaîne de caractère se trouve dans la réponse reçue.
  • Duration Assertion : Composant testant la performance du serveur interrogé pour la réponse aux requêtes émises.
  • Size Assertion : Composant qui permet de sélectionner les pages selon leur taille.
  • XML Assertion : Composant qui permet de vérifier que la page récupérer est un document XML valide.

Pour l'acquisition et l'affichage des résultats des tests, Apache JMeter inclut des Listeners. Les Listeners disponibles sont les suivants :

  • Graph results : Composant fournissant un graphique présentant les temps de réponse, la moyenne, le temps médian, la déviation des différentes requêtes effectuées.
  • Spline visualizer : Composant fournissant un graphique du temps de réponse des différentes requêtes effectuées.
  • Assertion results : Composant fournissant les résultats sous forme textuelle de toutes les requêtes effectuées.
  • Mailer visualizer : Composant permettant l'envoi d'un mél à l'administrateur en cas de trop nombreux échec aux requêtes effectuées.
  • Tree results ; Composant affichant la liste des requêtes effectuées, leur type et leur Response Data.
  • Table results : Composant créant une table de l'ensemble des requêtes effectuées, leur type, leur temps de réponse et leur validité.
  • Aggregate report : Composant créant une table de l'ensemble des statistiques des test effectuées.
  • Simple data writer : Composant qui exportent les résultats des tests vers un fichiers donné.

[modifier] Livres de référence

[modifier] Liens externes