JMeter

JMeter
JMeter
Jmeter.jpg
Développeur Apache Software Foundation
Dernière version 2.5.1 [+/−]
Environnement Plate-forme Java
Type Outil de test de charge
Licence licence Apache
Site web Site officiel

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 fait partie de la suite Apache Jakarta.

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 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, 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, 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, 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.

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.

Sommaire

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
  • Test de robustesse : Simulation de trafic pour vérifier la robustesse selon le niveau de trafic
  • Test de rupture
  • Test de Charge : répartition sur plusieurs injecteurs de la charge de test, piloté par un contrôleur
  • Réalisation de résultats statistiques sous plusieurs formes graphiques et textuelles
  • etc.

JMeter est un outil générique de tests, 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. Par ailleurs, JMeter est extensible, c'est-à-dire qu'il est possible de créer de nouveaux types d'échantillons (requêtes) implémentant d'autres protocoles.

Composants de base de Apache JMeter

  • Plan de test : Emplacement à partir duquel on définit ce que l'on teste.
  • Groupe d'unités : Emplacement à partir duquel on définit les paramètres de la simulation :
  • Nombre d'unités : nombre d'utilisateurs qui se connectent.
    • Durée de montée en charge : intervalle de temps où ces utilisateurs se connectent progressivement.
    • Nombre d'itérations : nombre d'itérations que fera chaque unité (utilisateur).
      • L'option Infini : spécifie que les unités itèrent indéfiniment.
  • Plan de travail : Emplacement permettant de garder les composants de test non utilisés.
  • Gestionnaire SSL : Composant permettant de gérer des clés SSL pour s'authentifier via certificat SSL.

Apache JMeter contient les éléments suivants :

  • Échantillons : 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 JMS, les requêtes objet Java, les requêtes LDAP, les requêtes SOAP/XML-RPC et les requêtes WebService (SOAP).
  • Contrôleurs : permet la spécification des paramètres du test à effectuer. Apache JMeter inclut plusieurs types de contrôleurs :
    • Contrôleur interleave et Contrôleurs aléatoire : composants permettant d'envoyer des requêtes dans un ordre aléatoire.
    • Contrôleur boucle : composant permettant d'envoyer plusieurs fois les requêtes spécifiées.
    • Contrôleur d'exécution unique : composant permettant de lancer une seule fois les requêtes spécifiées quel que soit le nombre d'itérations prévues.
    • Contrôleur transaction : composant permettant de consolider les résultats (temps de réponse) d'un ensemble de requêtes.
    • Contrôleur enregistreur : composant destinée à capter les requêtes HTTP interceptées par le composant Proxy HTTP.

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.
  • Gestionnaire d'autorisation HTTP : Composant fournissant un identifiant et un mot de passe pour les sites où l'accès est restreint.
  • Gestionnaire de cookies HTTP : Composant permettant de stocker, d'envoyer et de spécifier des cookies à envoyer au serveur.
  • Gestionnaire d'entêtes HTTP : Composant permettant de définir l'entête HTTP des requêtes envoyées.

Apache JMeter donne la possibilité d'insérer une pause entre chaque requête envoyée à travers les éléments Compteurs de temps. Les différents Compteurs disponibles sont :

  • Compteur de temps fixe : Composant permettant d'insérer un temps constant entre chaque requête envoyée.
  • Compteur de temps aléatoire gaussien : Composant permettant d'insérer un temps aléatoire selon la logique Gaussienne entre chaque requête envoyée.
  • Compteur de débit constant : Composant permettant de contrôler la fréquence d'exécution d'une requête.
  • Compteur de synchronisation : Composant permettant d'attendre un certain nombre d'unités pour exécuter la prochaine requête en même temps.

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

  • Assertion réponse : Vérifie si une ou plusieurs chaînes de caractères se trouvent dans la réponse reçue.
  • Assertion durée : Vérifie si la réponse a été reçue avant ou après un temps prédéfini.
  • Assertion taille : Vérifie si la taille de réponse (en octets) est supérieure, inférieure, égale, ... à une taille prédéfinie.
  • Assertion XML : Vérifie que la page de réponse est un document XML valide.
  • Assertion MD5 : Vérifie si l'empreinte MD5 de la réponse (entête et corps) correspond à une empreinte MD5 prédéfinie.

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

  • Graphique de résultats : Composant fournissant un graphique présentant les temps de réponse, la moyenne, la médiane, l'écart-type des différentes requêtes effectuées.
  • Moniteur de courbe (spline) : Composant fournissant un graphique du temps de réponse des différentes requêtes exécutées, selon la logique Spline.
  • Résultats d'assertion : Composant fournissant les résultats des assertions sous forme textuelle de toutes les requêtes exécutées.
  • Visualiseur de courrier : Composant permettant l'envoi d'un mail à l'administrateur en cas de trop nombreux échec aux requêtes exécutées.
  • Arbre de résultats : Composant affichant la liste des requêtes exécutées, leur type et leur données de réponses.
  • Tableau de résultats : Composant créant une table de l'ensemble des requêtes exécutées, leur type, leur temps de réponse et leur validité.
  • Rapport agrégé : Composant créant une table de l'ensemble des statistiques des tests effectués.
  • Enregistreur de données simple : Composant qui enregistre les résultats des tests vers un fichier donné.

JMeter propose un élément hors-test appelé Serveur Proxy HTTP 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, 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 charges.

Livres de référence

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article JMeter de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Jmeter — Développeur Apache Software Foundation Dernière version 2.3.4 [+/−] …   Wikipédia en Français

  • JMeter — Aktuelle Version: 2.3.2 Betriebssystem: plattformunabhängig Kategorie: Lasttests Werkzeug Lizenz: Apache Lizenz …   Deutsch Wikipedia

  • JMeter — es un proyecto de Apache Jakarta que puede ser utilizado como una herramienta de prueba de carga para analizar y medir el desempeño de una variedad de servicios, con énfasis en aplicaciones web. JMeter puede ser usado como una herramienta de… …   Wikipedia Español

  • JMeter — Infobox Software name = Jakarta JMeter caption = developer = Apache Software Foundation latest release version = 2.3 latest release date = release date|2007|09|24 latest preview version = latest preview date = operating system = Cross platform… …   Wikipedia

  • JMeter — Apache JMeter Тип Средство для нагрузочного тестирования Разработчик …   Википедия

  • Apache JMeter — Maintainer Apache Software Foundation Aktuelle Version 2.5.1 (3. Oktober 2011) Betriebssystem plattformunabhängig Kategorie Lasttests Werkzeug …   Deutsch Wikipedia

  • Load Testing — Unter einem Lasttest (Lehnübersetzung von Performancetest) versteht man einen Softwaretest, mit dem eine zu erwartende, auch extreme Last auf dem laufenden System erzeugt und das Verhalten desselbigen beobachtet und untersucht wird. Dazu kann… …   Deutsch Wikipedia

  • Testautomation — Unter Testautomatisierung (auch Testautomation) ist die Automatisierung von Aktivitäten im Test zu verstehen, sowohl beim Softwaretest als auch beim automatisierten Test von Hardware, dem Hardwaretest. Inhaltsverzeichnis 1 Motivation 2… …   Deutsch Wikipedia

  • Java Et Logiciel Libre — Java est libre et open source (depuis le 13 novembre 2006 voir plus loin), et sa licence à permis l éclosion d un grand nombre d outils libres dans les domaines les plus variés. Sommaire 1 Discussion sur la licence de Java 2 Licence… …   Wikipédia en Français

  • Java et logiciel libre — Java est libre et open source (depuis le 13 novembre 2006 voir plus loin), et sa licence à permis l éclosion d un grand nombre d outils libres dans les domaines les plus variés. Sommaire 1 Discussion sur la licence de Java 2 Licence… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”