JMeter : authentification par certificat SSL avec JMeter en mode non-gui

Un billet rapide pour compléter ce premier billet, et pour répondre à la question « comment tester un site demandant l’authentification par certificat SSL tout en lançant JMeter en ligne de commande ? ».

Pour cela, rien de sorcier, on édite le fichier Jmeter_Home/bin/system.properties.

Au niveau des lignes :
===================
# Location of the keystore
javax.net.ssl.keyStore=/home/milamber/client-ssl-authentification.p12
#
#The password to your keystore
javax.net.ssl.keyStorePassword=Mon_Password_P12
===================

Ensuite, on peux lancer JMeter en ligne de commande normalement.

Accessoirement, il n’est plus nécessaire de choisir le P12 dans JMeter en mode graphique (pour ce site).

Plus d’infos (en anglais) : le composant SSL Manager dans la documentation JMeter.

./

JMeter : faire un test distribué avec des injecteurs à deux cartes réseaux

Suite à une discussion avec Eudes (merci) sur le groupe JMeter en français, voici une architecture possible (et testée) pour un test distribué avec des injecteurs qui possèdent deux cartes réseaux.

Une carte réseaux est tournée vers le contrôleur, et une autre carte réseaux est tournée vers le serveur à tester. L’avantage de ne pas mélanger les trafics réseaux : celui des requêtes (vers le serveur) et celui de résultats du test (vers le contrôleur).

Donc voici la recette : Continuer la lecture de JMeter : faire un test distribué avec des injecteurs à deux cartes réseaux

JMeter : Exemple de script BeanShell pour enregistrer des données dans un fichier

Un petit billet dans un but pédagogique, pour montrer un exemple de script BeanShell pour enregistrer des données dans un fichier texte.

Soit le plan de test suivant :

Dans ce plan de test, on extrait avec l’extracteur d’expressions régulières des données de la page reçue, (ici un NOMBRE).

On ajoute ‘au passage’ une assertion de réponse qui est là pour s’assurer que l’expression regexp a réussie (on vérifier si on (re)trouve le NOMBRE précédemment cherché dans la page).

Et pour finir, on a un élément post-processeur BeanShell qui exécuter un bout de code Java pour faire l’enregistrement de la variable NOMBRE dans un fichier.

Continuer la lecture de JMeter : Exemple de script BeanShell pour enregistrer des données dans un fichier

JMeter : Trouver le bon élément dans une liste avec les expressions régulières et en mode ligne unique

Voici un billet pour parler des expressions régulières (regexp) avec JMeter. L’élément Extracteur d’expressions régulières est très utile dans les scénario JMeter pour extraire des données de la réponse reçues suite à une requête. Par contre, il n’est pas toujours facile d’avoir (de trouver) la bonne regexp…

J’ai mis quelques heures pour trouver cette regexp qui était nécessaire pour la préparation d’un scénario de test de charges JMeter. J’ai même adapté un petit programme Java/Swing testeur de regexp style Java pour qu’il devienne un programme testeur de regexp Jakarta ORO, celui du JMeter, ceci afin de tester plus vite les différentes regexp.

Commençons, soit le texte de réponse d’une requête HTTP (utilisant en fait SOAP/XML-RPC) suivant :

<ClientBean>
<id>765432</id>
<code>1.87665308</code>
<nom>JAMES BOND</nom>
<statutNumAppel>Inactif</statutNumAppel>
</ClientBean>
<ClientBean>
<id>765432</id>
<code>1.33333333</code>
<nom>LARGO WINCH</nom>
<statutNumAppel>Inactif</statutNumAppel>
</ClientBean>
<ClientBean>
<id>765432</id>
<code>1.87999999</code>
<nom>BENGAMIN GATES</nom>
<statutNumAppel>Actif</statutNumAppel>
</ClientBean>
<ClientBean>
<id>765432</id>
<code>1.23334444</code>
<nom>EMMA PEAL</nom>
<statutNumAppel>Inactif</statutNumAppel>
</ClientBean>

Cette liste est dynamique (on n’a pas toujours 4 éléments, celui ayant le statut d’actif n’est pas toujours à cette position (ici 3ème) et les valeurs bien entendues changent pour chaque requête du test).

Comment faire pour extraire le code « 1.87999999 » correspondant au même ID 765432 pour chaque élément de cette liste, et qui est celui « Actif » ? Le tout avec une expression régulière JMeter ? Continuer la lecture de JMeter : Trouver le bon élément dans une liste avec les expressions régulières et en mode ligne unique

JMeter : Think time et ordre d’exécution, « les bons plans »

Un billet inspiré d’une discussion sur le groupe Google JMeter en français (merci Jslave).

Vous avez fait ce plan de test, avec 2 itérations dans la boucle (01 Contrôleur Boucle) :

En pensant avoir l’ordre d’exécution suivant (pour un groupe d’unités à 1-1-1) :

  • 01 Requête Login
    • (1ère itération de boucle)
      • (Compteur de temps fixe : pause 2 sec)
      • 02 Requête A
      • (Compteur de temps fixe : pause 2 sec)
      • 02 Requête B
      • (Compteur de temps fixe : pause 2 sec)
      • 02 Requête C
    • (2ème itération de boucle)
      • (Compteur de temps fixe : pause 2 sec)
      • 02 Requête A
      • (Compteur de temps fixe : pause 2 sec)
      • 02 Requête B
      • (Compteur de temps fixe : pause 2 sec)
      • 02 Requête C
  • 02 Requête Logout

Malheureusement, le plan de test n’aura pas cet ordre d’exécution Continuer la lecture de JMeter : Think time et ordre d’exécution, « les bons plans »

Tomcat Optimisation & Performance Tuning : présentation de Mark Thomas

Un petit billet pour vous parler de cette présentation de Mark Thomas, un committer sur Apache Tomcat, qui a fait une très bonne présentation sur les optimisations et les performances de Tomcat, dans le cadre des rencontres Spring.

La vidéo complète de sa présentation est disponible (46 min, en anglais), c’est extrêmement intéressant et enrichissant. La présentation PDF est téléchargeable également.

Je vous recommande au moins un parcours de la présentation pour voir le « process », la démarche à suivre pour tout problème de performance.

Sa présentation parle de Tomcat, mais certaines parties sont adaptables pour d’autres serveurs d’applications comme Jboss (bien sur), WebSphere, etc.

./

JMeter : suivre un tir de charge en mode non-gui avec le résumé statistique

Dans le billet précédent, j’indiquais qu’il est préférable de lancer un test de charge en utilisant JMeter en mode non-gui afin de préserver les ressources de la machine JMeter.

Cependant en mode d’exécution non-gui, il est frustrant de ne pas « voir ce qui se passe » : est-ce que le tir de charge se passe bien ?, est-ce qu’il n’y a pas d’erreurs ?, y-a-t-il un blocage ?, …

Heureusement pour nous, JMeter a prévu une option qui va nous permettre d’avoir quelques données durant un tir de charges exécuté en mode non-gui.

Il s’agit du « summariser », ce dernier va afficher à intervalle pré-défini les statistiques du test en cours. Continuer la lecture de JMeter : suivre un tir de charge en mode non-gui avec le résumé statistique

JMeter : Pourquoi exécuter son test de charges en mode non-gui (sans interface graphique) ?

JMeter dispose de deux modes de fonctionnement, un mode GUI et un non-GUI, « GUI » signifiant Graphical User Interface, c’est-à-dire un mode de fonctionnement avec une interface graphique utilisateur qui permet de créer, éditer un script et lancer un test de charges et autres choses. Le mode non-GUI ne permet pas de manipuler un script, mais simplement de lancer le script de test de charges.

Pourquoi ce mode non-GUI ? Parce qu’en mode GUI, JMeter peut être gêné par la gestion du ‘graphisme‘ pendant qu’il est en train d’exécuter un test de charges. Et cela peut avoir un impact sur la qualité des résultats du tir.

En effet, sur le poste JMeter, la gestion du mode graphique impacte : Continuer la lecture de JMeter : Pourquoi exécuter son test de charges en mode non-gui (sans interface graphique) ?

Windows 7 et Sun xVM VirtualBox sur Ubuntu 8.10

Un billet pour dire merci.

Merci tout d’abord à Sun pour xVM VirtualBox, leur produit open source de virtualisation (de bureau) qui est parfaitement intégré à Ubuntu 8.10. Grâce à cet outil, j’ai différentes machines virtuelles sur mon ordinateur (physique), de Windows XP à Centos 5.2, en passant de Ubuntu 9.04 Alpha 3 à OpenSolaris 2008.11 (sans oublier Fedora 10 et différentes VM de Ubuntu Server/JeOS). Le tout me permettant de faire différents tests ou manipulations sur ces environnements sans ‘polluer’ mon ordinateur de travail, et surtout avec une prise de risque minime sur les données situées mon ordinateur.

Un deuxième merci à Sun pour la mise à jour de VirtualBox afin d’y inclure la possibilité d’avoir une machine virtuelle Microsoft Windows 7, c’est à dire la prochaine version de Windows.

Au tour de Microsoft d’être remercié, merci pour donner la possibilité de télécharger la bêta 1 de Windows 7. C’est d’autant important qu’au vu du désintéressement (presque unanime) de Vista, il y a de la bonne communication à faire pour que le prochain opus de Windows fonctionne mieux, et surtout apporte de vrais plus par rapport à Windows XP (que l’on pourrait qualifier de ‘trop parfait’ ;-)). Continuer la lecture de Windows 7 et Sun xVM VirtualBox sur Ubuntu 8.10

[JMeter] Tutoriel sur la génération d’un graphique OpenOffice.org Calc avec les résultats d’un tir de charges

En ce début d’année, voici un tutoriel sur la génération d’un graphique qui présente les résultats d’un tir de charges JMeter, en utilisant le tableur OpenOffice.org Calc.

Ce tutoriel est important, il vient compléter les autres tutoriels de ce site sur JMeter. Ces derniers étant orientés utilisation de JMeter, celui là se rapproche plutôt d’un tutoriel sur OpenOffice.org Calc et la fonctionnalité de Pilote de données (les tableaux croisés dynamiques sous Excel).

Avec ce tutoriel, vous n’avez plus de raison de ne pas bien présenter vos résultats de test de charges !

Bon courage ! clic

./