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 !

./

Nouvelle version d’Apache JMeter : v2.3.4

Aujourd’hui c’est l’été, et cela sera également la sortie de la version 2.3.4 d’Apache JMeter. Il s’agit principalement d’une version venant corriger des anomalies apparues dans la version 2.3.3, sortie depuis à peine un mois.

Les nouveautés restent donc les mêmes que la version précédente, vous pouvez en avoir un aperçu via ce billet.

Il est recommandé de basculer en version 2.3.4, spécialement pour ceux qui utilisent la version 2.3.3.

Bonne utilisation de JMeter !

./

JMeter : utilisation de l’élément JDBC comme source de données pour un test de charge (partie 2)

Nous revoilà dans la deuxième partie de ce tutoriel. Pour rappel, nous étions dans la mise en œuvre d’un test de charges, dont les données injectées proviennent directement d’une base de données et ont été récupérées par JMeter, le tout expliqué dans cette partie. Continuer la lecture de JMeter : utilisation de l’élément JDBC comme source de données pour un test de charge (partie 2)

JMeter : utilisation de l’élément JDBC comme source de données pour un test de charge (partie 1)

Avec la version 2.3.3, JMeter nous propose une amélioration de l’échantillon JDBC, qui permet de récupérer les valeurs de champs d’une requête SQL de type SELECT et de les placer dans des variables JMeter.

D’où l’idée suivante : Pourquoi ne pas utiliser une base de données comme source de données pour un test de charge ?

Tout d’abord les pré-requis :

  • Une base de données bien entendu, avec le pilote JDBC approprié, à placer dans Jmeter_Home/lib
  • Dans la base de données, une table avec une liste d’éléments (ici j’ai repris mon fichier BOXERS que j’ai inséré en base)

Bon voyons un peu comment faire. Ci-dessous le plan de test à mettre en œuvre :

Il y a deux parties :

Nouvelle version d’Apache JMeter : 2.3.3

La nouvelle version de JMeter est sortie, passant de la 2.3.2 (sortie il y a un an) à la 2.3.3 (téléchargement). Un simple digit incrémenté, en troisième position, laissant penser qu’il s’agit d’une mise à jour mineure. Oui et non.

Oui, car il n’y a pas de révolution dans cette nouvelle version d’un point de vue fonctionnalité ou architecture interne. Non, car pour cette nouvelle version, la traduction en français de l’interface de JMeter a été revue, corrigée et complétée pour quasiment tous les éléments (à l’exception de JMS et LDAP étendu).

Dans la version précédente, la version française semblait être traduite par un traducteur automatique, il était souvent préférable d’utiliser JMeter dans la langue anglaise afin de bien comprendre les différents champs (et leurs fonctions) d’un élément. Il suffit de regarder les copies d’écrans sur les tutoriels de ce blog. Maintenant plus d’excuses pour ne pas l’utiliser en français, les termes ont été mieux choisi par rapport à leur signification dans le contexte.

Dans la liste des changements, il n’y a pas que la localisation (bien que l’on retrouve également l’ajout du polonais et du portugais (du Brésil)).

Parmi les évolutions ont trouve :

Continuer la lecture de Nouvelle version d’Apache JMeter : 2.3.3

JMeter : utiliser SQLite pour traiter les résultats d’un test de charges par palier

Dans ce billet, j’indique qu’il est possible d’utiliser SQLite pour traiter les données d’un tir de charges par palier (tutoriel ici).

Voici maintenant le mode d’emploi pour utiliser SQLite afin de traiter ses résultats de tir JMeter. Continuer la lecture de JMeter : utiliser SQLite pour traiter les résultats d’un test de charges par palier

JMeter et la création du rapport de tir de charges

Après l’exécution d’un tir de charges, il faut faire le rapport de tir avec si possible de beaux tableaux et/ou graphiques. Si vous avez déjà utilisé JMeter (ce que je présuppose) vous savez que les récepteurs de JMeter sont bien pour avoir des tableaux de résultats (en particulier celui du rapport consolidé), mais ils montrent des limites pour faire des tableaux personnalisés ou bien de beaux graphiques « parlants ».

Il se pose aussi la problématique de l’insertion des résultats affichés par les récepteurs de JMeter dans le document Word ou la présentation PowerPoint (ou OpenOffice). La capture d’écran fait un peu trop ‘bricolage’.

En général, il est préférable de récupérer les résultats au format CSV, puis de les traiter dans un tableur comme Excel ou Calc pour faire des tableaux et des graphiques (voir ce tutoriel).

Mais là aussi, on trouve des limites, notamment pour les « gros » tests de charges avec plus de 100 000 lignes de résultats. Les graphiques étant limités à 32 000 points (Excel/Calc) et les feuilles de tableur à 65 000 lignes (Calc / Excel 2000/2003) et 1 million (Excel 2007).

Une solution possible est de développer un programme « moulinette » qui va effectuer un premier traitement sur les données CSV pour réduire ou agréger les données, par exemple en calculant le temps moyen par intervalle de temps (i.e. par minute, par heure, etc.).

Une autre solution est d’utiliser un logiciel de base de données bureautiques comme Access ou Base pour gérer le grand nombre de lignes, voir cet article.

Une autre solution, que je trouve ‘sympa’, pratique et finalement assez simple pour un informaticien, c’est d’utiliser la petite base de données SQLite. Continuer la lecture de JMeter et la création du rapport de tir de charges