Quelques nouvelles de JMeter

Cela fait un petit moment que je n’ai pas publié de billet, une des raisons principales de l’absence de billet, c’est JMeter.
Depuis la publication de la version 2.5, l’activité du bugzilla de JMeter a fortement augmenté. D’une part, des bugs ont été trouvés sur des nouvelles fonctionnalités de la 2.5, et d’autre part, de nouveaux contributeurs ont proposé bons nombres de correctifs à de nombreux bugs.
Concernant les bugs trouvés sur les nouvelles fonctionnalités, j’en mentionne deux :

  • Sur l’implémentation HTTPClient 4.1 pour la requête HTTP, il y avait un problème de libération de connexion HTTP, ce qui engendrait une consommation excessive de ressources (mémoire et sockets), allant jusqu’à interdire les « gros » tests de charges.
  • Sur la nouvelle fonctionnalité de téléchargement parallèles des ressources associées à une page avec l’utilisation conjointe d’un Gestionnaire de cache. Ce dernier n’était pas utilisé lors de la récupération des ressources.

Concernant les correctifs des nouveaux contributeurs, on peut parler de :

  • Actuellement il y a un problème de StackOverflowError sur le contrôleur Si (IF) lorsque la condition renvoie toujours faux, à cause de la conception du parcours de l’arbre JMeter utilisant une méthode récursive dont la condition de stop est un renvoi de ‘null’ et du détournement de cette condition de stop par le contrôleur Si qui renvoi aussi ‘null’ lorsque la condition est fausse. Toujours est-il que cela part en boucle récursive infinie si votre contrôleur Si est tout seul dans l’arbre et retourne faux (pour un nombre d’itération supérieur à la pile Java). Avec l’assistance d’un nouveau contributeur, on a corrigé un cas de figure (si le contrôleur Si commence à renvoyer des vrais, puis que des faux). NB. un contournement possible est d’ajouter un échantillon Débogage au même niveau (ou supérieur) que le contrôleur Si, avec cela la boucle infinie ne se produit pas.
  • Le bug 50032 corrigeait un problème d’exécution du Contrôleur Si (encore!) lorsque ce dernier contenait plusieurs échantillons avec des assertions fausses et qu’il n’exécutait pas le bon échantillon à l’itération suivante. Ce bug 50032 a apporté deux régressions. Les deux sont corrigées pour la future version 2.5.1
  • Un certain nombre d’améliorations ont été effectués sur la requête WebServices SOAP, au niveau de l’assistant de configuration et aussi de son interface utilisateur pour la rendre plus conviviale.

Pour résumer, depuis la sortie de la version 2.5, on bosse pas mal sur les correctifs, et depuis qu’il a été annoncé que nous voulions sortir une version 2.5.1 rapidement à cause notamment du bug sur le HTTPClient 4.1, on a le phénomène « valide mon patch avant la release stp ! ». C’est à la fois super, car cela améliore JMeter, mais aussi fatiguant, car cela demande du temps/travail en plus 😉
C’est en train de se stabiliser, et la nouvelle version 2.5.1 qui est avant tout à vocation corrective, va sortir prochainement.