Petit tour des nouveautés Jakarta JMeter 2.4

La version 2.4 est une version majeure qui apporte quelques fonctionnalités et corrige plusieurs bugs.
Côté scripting Web pas de changement profond :
  • le proxy d’enregistrement a maintenant une vrai gestion des sessions HTTPS. En 2.3, il faisait du spoofing, ce qui marchait dans la plupart des cas, mais pas toujours. Par ailleurs, il fallait penser à changer le protocole pour http: et souvent on oubliait ce détail et on galérait longtemps.
  • l’option par défaut du HTTP Redirect change. La valeur par défaut n’est plus "Follow Redirects" mais "Redirect Automatically" pour permettre la capture des cookies placés pendant les redirects. Cela n’affecte pas les scénarios existants, seulement les nouveaux HTTP Samplers
Attention pour les gens qui aiment les sasfepu, JMeter nécessite maintenant Java 5.
Les évolutions ont plutôt porté sur les autres protocoles et l’outillage :
  • l’ajout de protocoles mail supplémentaires
  • des améliorations sur le protocole JMS (support des Topics et des Queues et en Publish/Subscribe et corrections de bugs)
  • le support des samplers en JUnit4
  • l’intégration de la JSR 223 - Scripting for the JavaTM Platform
  • 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 testeur de RegExp (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 dans les résultats 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
Le format d’enregistrement des résultats en mode non-gui est resté identique.
<?xml version="1.0" encoding="UTF-8"?>
<testResults version="1.2">

<httpSample t="207" lt="57" ts="1279471780513" s="true" lb="/search" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="54101"/>
<sample t="1209" lt="752" ts="1279471780049" s="true" lb="Contrôleur Transaction" rc="200" rm="Number of samples in transaction : 8, number of failing samples : 0" tn="Thread Group 1-1" dt="" by="190509"/>

</testResults>

Si cet article vous a intéressé, vous trouverez ici d’autres articles de ce site qui peuvent vous intéresser

Présentation JMeter



Le 25 mars 2010, j’ai fais une présentation dans le cadre des cours du soir Valtech.

Le but était de présenter JMeter (des gens ne savent pas qu’on peut enregistrer un scénario avec JMeter), mais aussi de comprendre les pièges qui influent sur la pertinence et la communication des résultats des tests de performance.

Les slides utilisés pendant le cours sont en Creative Commons sur SlideShare.