JMeter – Fixer la durée de répétition d’une requête

Vous utilisez JMeter pour faire un tir de charge (ou autres), et vous devez avoir une requête qui s’exécute à un interval fixe quelque soit le temps de réponse de la requête.

Par exemple, vous devez exécuter une requête chaque 20 secondes, le temps de réponse de la dite requête est 4,5 sec. Donc si on démarre à T0, on a T0+4,5 sec la requête, puis on demande à JMeter de faire une pause pendant (20 sec – 4,5 sec = 15,5 sec), puis une nouvelle requête, etc.

Schéma de répétition d'une requête à interval fixe

Voici comme le faire avec JMeter. Continuer la lecture de JMeter – Fixer la durée de répétition d’une requête

Livre Apache JMeter par Emily H. Halili (en anglais)

Apache JMeter par Emily H. HaliliEst-ce le début de la notoriété de JMeter ? Voilà qu’un livre en anglais à son sujet sort. C’est Emily H. Halili qui en est l’auteur, elle est ingénieur/consultant en Malaisie dans une boîte de conseil.

Toujours est-il que j’ai fait l’achat de ce livre (en version eBook), histoire de voir son contenu, même s’il est indiqué qu’il est à destination des débutants.

En effet, c’est un livre pour débutant, relativement bien organisé et remplit de captures d’écran venant illustrer les explications. Au total, le livre fait 140 pages, si on retire les annexes il reste 106 pages, le livre est donc vite parcouru.

Les premiers chapitres (de 1 à 4) sont consacrés, d’une part à une étude intéressante de ROI sur les tests de performances en fonction des outils/méthodes utilisés. Ensuite, c’est la description et l’installation de JMeter. Continuer la lecture de Livre Apache JMeter par Emily H. Halili (en anglais)

Compression HTTP, ou comment réduire le temps réseau dans les performances d’une application

Avec JMeter on peut faire des tirs de performances (et d’autres choses) pour une application Web. Pour qu’une application soit performante, il est préférable qu’elle soit développée judicieusement, mais également qu’elle s’exécute sur un environnement performant. Dans ce dernier, il ne faut pas négliger la composante réseau qui peut souvent devenir un goulet d’étranglement au niveau de l’utilisateur.

En effet, vous allez développer une application hyper véloce, la faire fonctionner sur des serveurs hyper-rapides, mais votre utilisateur au bout de la ligne vous dit que c’est lent…

Vous (re)faites vos tir de charges, vous mesurez les performances, c’est excellent… sur votre réseau local. Vous placez un injecteur chez votre utilisateur final, et là c’est la surprise… c’est lent.

Le diagnostic est rapide : trop d’octets à transférer pour afficher un écran, avec une bande passante trop petite donc lenteurs. Et impossible d’augmenter la bande passante. Que faire ? Continuer la lecture de Compression HTTP, ou comment réduire le temps réseau dans les performances d’une application

JMeter 2.3.2 est sorti

Je sors la tête de l’eau, cela fait un moment que je n’ai pas pu écrire un billet (la faute au boulot bien sûr, et peut-être un peu de paresse -non, je confirme, c’est le boulot-).

Une nouvelle version de JMeter vient de sortir, il s’agit de la version 2.3.2, c’est une petite mise à jour qui apporte des corrections de bugs et quelques améliorations.

Parmi les nouveautés notables :

  • Le fichier de l’élément CSV Data Set Config peut maintenant être partagé à différents niveaux : pour tous les thread groups, par thread, par identifiant. Ceci permet d’avoir un seul fichier utilisé par plusieurs threads avec une lecture des données identiques et dans le même ordre.
  • L’élément Response Assertion peut être utilisé pour tester la présence d’une chaîne (substring) dans la réponse.
  • Un nouveau bouton apparaît dans les éléments de rapport Summary et Aggregate pour permettre la sauvegarde dans un fichier CSV des données affichées (et calculées) de ces rapports.
  • Dans l’élément View Results Tree, le rendu XML des réponses utilise la bibliothèque Tidy.

L’ensemble des changements est visible ici.

./

Liferay : immersion & JMeter Link HTML Parser

Depuis deux semaines, je suis en immersion (haute profondeur) dans Liferay (framework portail open source).

Je n’ai pas oublié la mise à jour du blog, d’autant que j’ai des choses à dire. Tout d’abord sur Liferay dès que je remonte à la surface (prévue dans 2J) et aussi sur JMeter.

En effet les articles sur JMeter étant les plus populaires sur ce blog, j’ai intérêt à continuer à vous satisfaire 😉 L’article que je prépare est sur l’utilisation de Link HTML Parser, cet élément qui permet de retrouver (par parsing utilisant des regexp) du texte dans une page HTML et de l’utiliser comme lien. Ceci simplifiant la jmeterisation de scénario fonctionnel complexe (par exemple avec des enchaînements de pages avec paramètres en GET).

Donc merci de votre patience, elle sera récompensée ce weekend.

[Tutorial] JMeter et l’authentification par certificat SSL

L’authentification par certificat SSL consiste à demander à l’utilisateur d’une ressource ou d’un site protégé de fournir un fichier certificat SSL pour pouvoir s’authentifier et ainsi accéder à la ressource ou au site.

L’authentification par certificat SSL est ce l’on appelle une authentification ‘forte’, c’est-à-dire plus sécurisée que la simple saisie d’un login / mot de passe. Par ailleurs sa mise en place est relativement simple, ou tout du moins très documentée sur Internet. Ainsi vous rencontrerez peut-être un site Web utilisant ce type d’authentification (par exemple un extranet) à tester avec JMeter.

Alors comment faire pour gérer cette authentification SSL avec JMeter ? Ce micro tutorial vous aidera à comprendre les subtilités du SSL dans JMeter.

Bon courage.

Utilisation de NDC de Apache Log4J pour tracer et suivre l’exécution d’une application Java

Un fonctionnalité pratique du framework de logging Apache Log4J est le NDC (pour Nested Diagnostic Contexts). Ce dernier permet de tracer et suivre plusieurs instances d’un même traitement dans un seul fichier de log. Une utilisation typique est le fichier de log d’une application web s’exécutant sur un serveur d’applications, car plusieurs instances d’une même servlet (et de plusieurs servlets) s’exécutent en même temps pour servir les utilisateurs.

La fonctionnalité permet donc de mieux comprendre le déroulement d’un traitement, en particulier lors qu’un problème survient lors d’un tir de charges ou sur un environnement en production. Et imaginons que ce problème ‘ne se reproduit pas’ en environnement de recette / développement, et donc l’origine pourrait être ces accès multiples en même temps… Continuer la lecture de Utilisation de NDC de Apache Log4J pour tracer et suivre l’exécution d’une application Java