Apache JMeter
Description de l'image Apache JMeter.png.
Description de l'image ApacheJMeter-5.0-screenshot.png.
Informations
Développé par Apache Software FoundationVoir et modifier les données sur Wikidata
Première version [1]Voir et modifier les données sur Wikidata
Dernière version 5.6.3 ()
Dépôt github.com/apache/jmeterVoir et modifier les données sur Wikidata
Écrit en JavaVoir et modifier les données sur Wikidata
Environnement Machine virtuelle JavaVoir et modifier les données sur Wikidata
Type Outil de test logiciel (d)Voir et modifier les données sur Wikidata
Licence Licence Apache version 2.0Voir et modifier les données sur Wikidata
Site web jmeter.apache.orgVoir et modifier les données sur Wikidata

Apache JMeter est un projet de logiciel libre permettant d'effectuer des tests de performance d'applications et de serveurs selon différents protocoles ainsi que des tests fonctionnels. Il est développé au sein de la Fondation Apache (ASF).

JMeter est écrit en Java et un peu en Kotlin depuis la version 5.5, 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 agissant de manière simultanée sur une application Web. Au fur et à mesure de ses développements, il a été étendu et permet de tester d'autres types d'applications : serveurs ftp, serveurs de services Web, bases de données accessible via jdbc, serveurs TCP/IP, LDAP, etc.

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 (fichiers CSV), 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 (en) d'URL, lancement des tests sur plusieurs serveurs JMeter, etc. Il est également possible, à partir de la version 2.4, de faire de l'"IP spoofing" (simulation de plusieurs adresses IP à partir du même poste de test) en utilisant les requêtes HTTP HTTPClient (HttpClient version 4 minimum).

Des pré/post processeurs de tests sont disponibles, permettant par exemple de modifier dynamiquement une requête avant son exécution ou d'extraire des données de résultats de test. Les résultats des tests peuvent être visualisés de différentes manières et peuvent également être enregistrés sous fichier au format XML ou CSV.

JMeter peut également faire des tests fonctionnels d'une application, permettant ainsi de valider les fonctionnalités d'une application de manière automatisée.

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/REST/EJB, d'appels à des classes Java et autres encore. L'interface graphique de JMeter offre des possibilités de faire des tests multi-threads, de créer des boucles et contrôleurs de tests plus spécifiques.

Ses principales fonctionnalités sont :

JMeter est un outil générique de tests[2], il n'est pas limité à une seule nature de types de tests, c'est le métrologue qui, en créant son scénario de tests, définit le type de tests. On peut également mélanger des protocoles dans le même test (http et ftp par exemple). Par ailleurs, JMeter est extensible avec des plugins, c'est-à-dire qu'il est possible de créer de nouveaux types d'échantillons (requêtes) implémentant d'autres protocoles ou des récepteurs (Listeners).

Composants de base de Apache JMeter

Apache JMeter contient les éléments suivants :

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 :

Apache JMeter donne la possibilité d'insérer une pause entre chaque requête envoyée à travers les éléments Compteurs de temps ou Action de contrôle d'exécution avec action = Pause. Les différents Compteurs disponibles sont :

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

Pour l'acquisition et l'affichage des résultats des tests, Apache JMeter inclut des récepteurs. Plusieurs récepteurs sont disponibles :

JMeter propose un élément hors-test appelé "HTTP(S) Test Script Recorder" (ancien nom : "HTTP Proxy Server") qui permet l'enregistrement d'une session d'utilisation d'une application Web effectuée depuis son navigateur. Les requêtes sont interceptées par le proxy recoder, et créées en sous éléments d'un contrôleur Enregistreur, prêtes à être réexécutées. Ceci accélère la réalisation d'un scénario de test de performance.

Livres de référence

Références

  1. « https://jmeter.apache.org/changes_history.html » (consulté le )
  2. (en-US) « Jmeter vs Loadrunner: Which Tool Is Better for Load Testing Services | PFLB », sur pflb.us, (consulté le )