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

[Tutorial] Superviser un serveur Tomcat avec JMeter

JMeter est un outil qui sait faire des petites choses sympas. La supervision d’un serveur Apache Tomcat par JMeter en fait partie.

JMeter à travers la servlet de statut fournie avec le serveur Tomcat peut afficher sous forme d’un graphique le nombre d’unités d’exécution actives, la mémoire JVM utilisée, et la charge (calculée) du serveur Tomcat. JMeter peut même le faire sur plusieurs serveurs Tomcat en même temps.

Voici donc un petit tutorial pour découvrir cette fonctionnalité de JMeter. Pour cela, on utilise un serveur Tomcat version 6.0 et un JMeter 2.3.

Bonne découverte.

[Tutorial] JMeter : faire un tir de charges par paliers et exploiter ses résultats avec Microsoft Access

Et voilà un nouveau tutorial sur JMeter. Il s’agit cette fois d’exécuter un tir de charges avec JMeter en utilisant des paliers de charges, c’est-à-dire que pour un même scénario, on va d’abord simuler une charge de N utilisateurs pendant une certaine période, puis après une période de montée en charges, nous simulerons N x 2 utilisateurs.

L’avantage d’un scénario par paliers est de permettre d’observer le comportement d’une application pendant une période « normale » et une période de « stress ».

Pour mieux voir son comportement, nous allons nous aider de Microsoft Access pour exploiter les temps de réponses enregistrés pendant le tir de charges, et ainsi générer rapidement un graphique. Ce dernier permettra une meilleure analyse du comportement, et sera beaucoup plus « sexy » dans un rapport de tir de charges.

Prêt à partir pour de nouvelles aventures JMeter ? Oui, alors Go sur cette page.