AccueilđŸ‡«đŸ‡·Chercher

Apache JMeter

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 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, 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, 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 Ă  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 (HttpClient version 3 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/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 :

  • Test de performance ;
  • Test de robustesse : Simulation de trafic pour vĂ©rifier la robustesse selon le niveau de trafic ;
  • Test de rupture ;
  • 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. On peut Ă©galement mĂ©langer des protocoles dans le mĂȘme test (http et ftp par exemple).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 (souvent dans ce cas, l'arrĂȘt est manuel ou au bout d'une durĂ©e en seconde).
  • 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 un 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 ou Action de contrĂŽle d'exĂ©cution avec action = Pause. 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.
  • Assertion JSON : VĂ©rifie un chemin au format JSON
  • Assertion XPATH : VĂ©rifie une expression XPATH pour un flux XML

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 Ă©checs aux requĂȘtes exĂ©cutĂ©es.
  • Arbre de rĂ©sultats : Composant affichant la liste des requĂȘtes exĂ©cutĂ©es, leur type et leurs 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Ă© "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

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.