Apache JMeter 2.4 est sorti

Et voilà, la version 2.4 de JMeter vient de sortir, avec quelques nouveautés bien intéressantes. Je rappelle que JMeter est développé dans le cadre du projet Jakarta de la fondation Apache. C’est un logiciel de test de charge et/ou fonctionnel qui connaît beaucoup de type de protocoles (la présentation de JMeter est ici).

Petit point important, la version 2.4 de JMeter est entièrement localisée en Français, y compris les nouveaux éléments ajoutés depuis la version 2.3.4.

Voici un petit tour d’horizon des nouveautés :

JMeter nécessite maintenant au moins la version 1.5 de Java. Fondamentalement, il n’y a pas eu de grosses révision du code, à part l’ajout des generics.

Les menu des éléments (échantillon, contrôleurs, post-processeurs, etc.) sont maintenant affichés par ordre alphabétique.

Maintenant, le Serveur  Proxy HTTP de JMeter sait enregistrer directement une session de navigation sur un site en HTTPS. Avant, il fallait passer par l’astuce « HTTPS Spoofing » (voir ce billet) qui ne fonctionnait pas toujours bien. Dorénavant, plus besoin de cocher l’option, le proxy de JMeter intercepte les requêtes HTTPS comme agirait un attaquant de type MITM (man-in-the-middle). Il donne son propre certificat ‘bidon’ SSL à votre navigateur à la place de celui d’origine (du site cible) ce qui permet l’interception. Tout en continuant à parler avec le site cible et son certificat SSL d’origine. Cette astuce (certificat bidon SSL) lui permet d’enregistrer et créer les requêtes HTTP de votre scénario. Page de manuel ici.

Du coté des Requêtes :

Possibilité de faire changer l’adresse IP source durant un test de charges, en utilisant les requêtes HTTP HTTPClient et en configurant de l’IP aliasing sur sa machine. Voir cette page.

Possibilité de configurer un serveur proxy directement dans l’élément Requête HTTP (avant c’était seulement possible dans le fichier de propriétés de JMeter – ceci restant toujours possible – )

Un nouvel échantillon Requête SMTP permet de tester un serveur de messagerie par envoi d’emails.

Le contrôleur Transaction peut maintenant comptabiliser ou non les temps des éléments Compteurs de temps. Avant c’était automatiquement comptabilisé, et cela pouvait parfois poser des soucis pour l’interprétation des résultats (surtout avec un Compteurs de temps aléatoire)

L’élément Arbre de résultats reçoit quelques bonnes améliorations :

L’onglet Résultat de l’échantillon peut maintenant être affiché sous forme d’un tableau pour permettre entre autres, un meilleur copier/coller vers un tableur.

L’onglet Données de réponse a reçu une interface extensible qui permet l’ajout de manière plus simple de « visualiseur » (une classe Java à implémenter c’est tout).

Un nouveau Visualiseur fait justement son entrée, c’est le testeur d’expression régulière ‘JMeter’. Voir la page du manuel.

Toujours dans l’onglet des Données de réponse, il y a maintenant la possibilité de faire une recherche (capture ci-dessous). La page de manuel.

Un nouvel élément Assertion de comparaison et un élément Récepteur d’assertions de comparaison font leurs apparitions. Ils permettent de faire des assertions automatiques (basées sur le temps ou/et des expressions régulières) à partir du premier échantillon, ce dernier servant de référence (voir la page du manuel).

Un nouvel élément Assertion SMIME permet de faire des assertions sur des messages email reçus (via l’échantillon Lecteur d’email).

L’API JSR223 fait son apparition dans cette version de JMeter, avec l’Echantillon JSR223, les post|pré processeurs JSR223, l’assertion JSR223 et le récepteur JSR223.

Des grosses améliorations sur les Requêtes JMS (révision de code, interface graphique, et fonctionnalités).

Il est possible d’avoir sa propre implémentation du Groupes d’unités, afin de permettre le changement de la logique d’exécution d’un test JMeter. Le ‘premier‘ nouveau moteur (qui n’est pas inclut dans le zip de JMeter 2.4), s’appelle le « Stepping Thread Group », et permet de faire une montée en charge par palier en style escalier. Il est accessible ici.

Bien entendu, de nombreuses anomalies ont été corrigées. La liste complète des changements est visible ici.

Le téléchargement c’est par là.

Amusez-vous bien avec cette nouvelle version de JMeter !

./

Flattr this!

3 commentaires

  1. […] l’amélioration des listeners qui reportent les résultats (ResultTree, outils de statistiques) La liste complète des changements et des corrections se trouve sur la release note http://jakarta.apache.org/jmeter/changes.html Passons à l’expérimentation Toujours le même problème de menus à moitié en anglais et à moitié en français si on choisit la langue anglais sur un OS en français. Enregistrons un script vite fait pour une recherche sur Google. Le proxy d’enregistrement, n’a pas changé. Le script généré non plus. view Results Tree – réponse en affichage texte Une nouvelle assertion la Comparison Assertion qui permet de lever une erreur s’il y a un écart trop grand entre un relevé initial de référence et les suivants, sur la base du contenu ou du temps de réponse. Quelques surprises du côté du view Results Tree (arbre de résultats). Tiens au passage changer la langue fait un clear des résultats. Heureusement que mon test dure 10s. Un nouveau mode d’affichage du résultat du sample en tableau (mode décodé ou parsed en anglais). Pas de changement pour la requête. Pour la réponse, une fonctionnalité de recherche dans le résultat a été ajoutée.  Elle permet de rechercher un texte dans le résultat en mode exact ou en expression régulière (voir schéma ci-dessus). view Result Tree – réponse en HTML Bon , là  je me suis demandée pendant un bon moment où était la case à cocher pour afficher en HTML, parce que quand même c’est pratique pour vérifier ce qu’on a reçu. En fait, le sélecteur à été déplacé sous la liste des samples. Il permet de choisir entre HTML, JSON, XML, texte brut et un évaluateur d’expressions régulières (schéma à droite). Attention, les fichiers manipulés et générés sont stockés dans le répertoire où est lancé jmeter. C’est un peu le bazar à la longue. Tiens, tiens, un évaluateur d’expressions régulières. Ce truc là devrait être bien pratique pour tester les expressions régulières des assertions et des extractions de texte sans aller chercher des outils externes comme QuickREx. Testeur d'expressions régulières Les Aggregate report et Summary report ne semblent pas avoir changé, ni la vue tableau. JMeter annonce des optimisations de consommation de ressources sur ces composants. Je n’utilise jamais les autres vues car je ne suis jamais en mode GUI pendant les tests et je fais toujours les stats et les courbes avec R à partir du log. Que fait le nouveau listener JSR 223 ? Il permet d’utiliser du code de script dans le traitement des résultats. C’est l’équivalent des listeners BeanShell et BSF mais en plus standard, avec le support de plus de langage et en particulier Groovy. Vous trouverez là un article très complet sur le scripting dans JMeter en JSR 223 dans les différents composants et les prérequis : http://blog.zenika.com/index.php?post/2009/07/29/INTEGRATION-DU-SUPPORT-DU-JSR223-DANS-JMETER J’ai aussi trouvé un autre article en français sur JMeter 2.4 en cherchant des informations sur la JSR 223 dans JMeter. Il est plus général et couvre certains aspects que je n’ai pas couvert parce que je ne les utilise pas en ce moment : http://blog.milamberspace.net/index.php/2010/07/14/apache-jmeter-2-4-est-sorti-694.html […]

  2. e2d2 dit :

    « Possibilité de faire changer l’adresse IP source durant un test de charges, en utilisant les requêtes HTTP HTTPClient et en configurant de l’IP aliasing sur sa machine »
    => uniquement pour l’échantillon HTTP HTTPClient. Il peut y avoir ambiguïté
    Par ex. une machine disposant de 2 IP – IP_A (défaut) et IP_B – on a le test suivant
    1. Requête HTTP HTTPClient avec IP_A
    2. Requête SOAP
    3. Requête HTTP HTTPClient avec IP_B
    4. Requête SOAP

    Requêtes 1,2,4 envoyées depuis IP_A
    Requête 3 envoyée depuis IP_A

  3. Stephane dit :

    Salut,

    Je te conseil d’aller voir ces plugins: http://code.google.com/p/jmeter-plugins/
    Ca ajoute tout ce qu’il manque a JMeter! J’ai decouvert ca cette semaine et j’ai et je vais contribuer un peu.

    a+

    Stephane