Tutoriel sur l’audit de performances d’une application en Java EE

Un petit billet pour vous inviter à découvrir ce tutoriel de Antonio Gomes Rodrigues, dont le sujet est l’audit de performance d’une application en Java EE.

C’est un tutoriel extrêmement complet qui couvre de nombreux domaines qui sont liées à la performance en général, et plus particulièrement sur une application J2EE.

Le tutoriel couvre les procédures de test (préparation, principaux métrics), le test de charges avec JMeter, et une dernière partie sur l’identification et la correction des problèmes. On a donc ainsi, l’entrée, le plat et le dessert pour optimiser nos applications J2EE.

La section sur l’identification et la correction des problèmes est particulière exhaustive sur les problèmes que l’on peut en effet rencontrer dans une application. Elle sera très utile pour faire une check-list de vérification si un souci arrive sur son application.

Voilà, c’est à mettre dans vos marques-pages.

./

JMeter dans la prochaine version de Ubuntu (9.10)

La prochaine version de Ubuntu sera la 9.10 (Karmi Kaola), elle est actuellement en bêta. Il va y avoir des nouveautés, mais celle qui me tiens à cœur, c’est JMeter sera disponible dans ses paquetages.

D’après ce que je comprends, c’est la récupération du paquetage JMeter de la distribution Linux Debian (dont Ubuntu est un dérivé).

C’est une bonne chose, pas parce que cela simplifie ou non son installation, cette dernière étant assez simple (une JVM + la décompression du fichier zip JMeter), mais cela me donne le sentiment d’une certaine reconnaissance de l’outil.

C’est la version 2.3.4 (la dernière en date) qui est distribuée. Pour effectuer son installation à partir de la version bêta de Ubuntu 9.10, il suffit de taper la commande suivante :

sudo apt-get install jmeter

Cela installera 3 paquetages (jmeter, jmeter-help, jmeter-http) de base (et leur dépendances). Avec cela, vous pouvez faire des tests de charges sur des sites Web.

Pour faire des tests sur LDAP, FTP, JMS, Junit, Mail, TCP et Java, il faudra ajouter le paquetage correspondant. Voir ce lien pour la liste des paquetages disponibles.

Bons tests.

C’est l’heure des vacances

Avec un peu de retard cette année, je prends mes congés d’été, en espérant que ce dernier soit indien. Techniquement je suis en congés depuis hier, mais dans la réalité, c’est plutôt maintenant que mes congés débutent, car j’ai dû finir du travail en retard de plusieurs clients (et malheureusement il m’en reste un peu, tant pis et désolé).

J’ai néanmoins envie de dire quelques mots avant de partir à Marrakech pour oublier un peu le boulot.

Tout d’abord concernant l’open source. Il semblerait que la fameuse crise économique mondiale soit l’occasion de découvrir les logiciels open source. Des acteurs majeurs de ce monde n’hésite pas à le dire, ou carrément organiser des séminaires ou/et des livres blancs sur le thème ‘pourquoi ne pas choisir de l’open source en temps de crise ?’. Continuer la lecture de C’est l’heure des vacances

Google Groups JMeter en français : déjà un an !

Il y a exactement 1 an aujourd’hui que ce groupe de discussion a été lancé.

Je me permets de vous donner quelques informations / commentaires :

  • 84 membres à ce jour
  • 555 messages à ce jour
  • 207 messages à moi tout seul (c’est mon coté « je me jette des fleurs » ;-))

Vous allez me dire : « Que 84 membres ? C’est pas beaucoup… » ? je trouve que c’est pas mal. Ma réponse c’est : « Vous en connaissez beaucoup des cocos qui font du tir de charges/fonctionnels avec JMeter tous les jours ? » 😉 Continuer la lecture de Google Groups JMeter en français : déjà un an !

Convertir les mots de passe en clair en mots de passe SHA-1 dans un serveur LDAP avec JMeter

Voici un complément à ce premier tutoriel sur JMeter et un serveur LDAP, où les mots de passe qui ont été insérés dans le serveur LDAP l’ont été en clairs. C’est à dire que si vous disposez d’un accès au serveur LDAP (et/ou que le serveur LDAP a une configuration pas très sécurisée) vous pouvez voir les mots de passe en clair de tout le monde. Ah, ce n’est pas terrible, pas de problème, reprenons JMeter pour effectuer une conversion en SHA-1 des mots de passe.

(Attention cela n’empêche pas de mieux sécuriser son serveur LDAP pour par exemple interdire la consultation du champ du mot de passe dans le LDAP par tout autre utilisateur que lui-même)

Les objectifs de ce nouveau tutoriel sont :

  • Montrer comment parcourir les enregistrements d’un LDAP avec JMeter
    • Pour cela avec un contrôleur Pour chaque
  • Faire une action conditionnelle avec un contrôleur Si, en fonction d’une valeur de variable
  • Monter la manipulation de données (variables JMeter) dans une utilisation avec Pré-processeur BeanShell

La capture suivante l’arbre JMeter de ce tutoriel.

Continuer la lecture de Convertir les mots de passe en clair en mots de passe SHA-1 dans un serveur LDAP avec JMeter

Faire un graphique de résultats JMeter avec Eclipse BIRT

Un billet pour pointer vers cet autre billet de la société Zenika, qui explique le comment-faire un rapport (graphique) de résultats suite à un test JMeter.

Dans le billet pointé, la source de données est le fichier de résultats JMeter au format JTL (donc XML). BIRT sait le lire ‘nativement’. Mais j’ajouterai qu’il est préférable d’avoir un format CSV pour l’enregistrement des données d’un JMeter (plus rapide et plus économe en taille), et que BIRT sait aussi lire du CSV nativement (à condition d’avoir une virgule comme séparateur (et non un point-virgule comme j’ai tendance à le faire dans mes CSV…))

Enfin, tout cela pour dire, que c’est un bon article à suivre, d’autant que cela peut épater les gens de voir que l’on utilise pas le pauvre (mais pratique) Excel ou OpenOffice pour faire ses graphiques, mais un bel outil de génération de rapports / graphiques.

Maintenant, j’aimerai bien pousser plus loin le bouchon avec JMeter/BIRT pour voir si on peut « préparer » des rapports (au sens PDF) avec tableaux et graphiques à partir de données JMeter d’un même test (qui serait exécuté N fois) afin d’avoir un rapport assez complet en quelques minutes après la fin d’un tir. Ce qui semble carrément possible avec BIRT. A suivre…

JMeter : patch ‘HTTPS proxy’ pour permettre d’enregistrer une session de navigation d’un site web en HTTPS

Juste un mot pour vous dire que je viens de proposer un patch pour ajouter une fonctionnalité, à mon sens, importante à JMeter : l’enregistrement d’une session de navigation en HTTPS.

https://issues.apache.org/bugzilla/show_bug.cgi?id=47622

En effet, JMeter ne permet pas d’enregistrer directement une session de navigation d’un site HTTPS dans un script. Il y a la fonctionnalité « Tenter d’usurper HTTPS » qui permet le faire indirectement, mais cela ne marche pas toujours notamment quand il y a des redirections lors d’une authentification HTTPS. Voir ce billet.

Donc, le patch permet d’utiliser JMeter comme proxy « ssl » dans son navigateur, et de faire son script JMeter sur un site HTTPS (le protocole http continuant à fonctionner aussi bien entendu)

Pour l’instant, le patch vient juste d’être posté, il faut donc qu’il soit testé et (si tout ce passe bien) validé sur le SVN pour le retrouver dans une version « nightly » de JMeter, et j’espère, une prochaine version stable 😉

Si jamais vous avez les sources de JMeter sur votre poste, vous pouvez le tester en appliquant le patch, je suis preneur des commentaires et retours.

Petite mise à jour (05/08/2009) : si jamais vous souhaitez tester la fonctionnalité sans passer par la case « compilation avec Eclipse/Ant », vous pouvez télécharger une version 2.3.4 de tests avec ce patch.

http://www.milamberspace.net/jmeter-testing/dist/

Nouvelle mise à jour (06/08/2009) : le patch a été validé dans le subversion de JMeter (avec quelques améliorations, principalement sur l’utilisation du ‘keytool’ Java plutôt que openssl pour la génération du certificat SSL du proxy JMeter).

Vous pourrez directement télécharger une version nightly build dès que l’outil de génération automatique aura fait sont travail.

http://people.apache.org/builds/jakarta-jmeter/nightly/ (version après r801473)

Nouvelle mise à jour (05/01/2011) : Depuis la version 2.4 de JMeter, sortie en 2010, ce patch fait parti intégrante de JMeter, donc plus besoin de prendre la version Nightly.

./

r801473

Charger un serveur LDAP depuis une base de données avec JMeter

Voici un tutoriel pour réaliser un script JMeter qui va lire dans une base de données (ici MySQL) via JDBC, une table d’utilisateurs (nom et prénom), puis se connecter sur un serveur LDAP (ici openLDAP) afin d’ajouter chaque utilisateur dans le LDAP.

Ce tutoriel a pour objectifs :

  1. Rappeler l’utilisation de Requête JDBC pour accéder à une base de données, et récupérer dans un ensemble de variables les résultats de requête JDBC
  2. Montrer comment effectuer l’ajout d’une fiche Utilisateur dans un serveur LDAP via une Requête LDAP étendue de JMeter
  3. Montrer le fonctionnement du Contrôleur Pour chaque dans JMeter
  4. Montrer un petit exemple de Pré-Processeur BeanShell

Voici le plan de de test final.

Continuer la lecture de Charger un serveur LDAP depuis une base de données avec JMeter

JMeter : attention à suivre ou non les redirections HTTP (code 302)

Un petit billet pour vous montrer un effet de bord de l’élément Serveur Proxy HTTP de JMeter.

Tout d’abord, voici un arbre JMeter qui va nous permettre de faire l’enregistrement d’une session de navigation.

J’ai choisi comme application modèle, l’un des exemples livrés avec Tomcat 6 : l’exemple de ressources protégées par un identifiant et mot de passe. Continuer la lecture de JMeter : attention à suivre ou non les redirections HTTP (code 302)

Rafraichissement du tutoriel pour faire son premier test de charges avec JMeter

Je viens de donner un petit coup de jeune au premier tutoriel JMeter de ce blog. Il avait été fait en 2007, avec la version 2.3RC4 de JMeter, avec des captures de l’interface en anglais, tellement la version française était incomplète et erronée.

Aujourd’hui, c’est la version 2.3.4, et son amélioration de la localisation en français. Donc, voici la nouvelle version de ce tutoriel « JMeter : Test de charges d’un site Web, mode d’emploi », qui maintenant a des captures de l’interface en français. J’en ai également profité pour revoir certains textes et/ou explications.

Bon courage dans vos tests !

./