[Tutorial] Effectuer un test de charge distribué (distributed testing) avec JMeter

Cela fait longtemps que j’aurais dû le faire, et bien c’est fait.

Voici donc un petit tutoriel qui donne la démarche pour faire un test de charge distribué avec JMeter.

L’intérêt principal pour ce type de test, est que la charge à produire par JMeter pour simuler ses utilisateurs virtuels est répartie sur plusieurs machines JMeter. Cela évite ainsi les problèmes de saturation de bande passante du JMeter, de surcharge CPU, mémoire, etc quand vous simulez un très grand nombre d’utilisateurs.

Ce tutoriel donne aussi quelques bons conseils pour réaliser ce type de tir.

Bons tests !

./

Création d’un groupe de discussion sur JMeter en français

Un billet pour vous annoncer la création d’un groupe de discussion sur JMeter et les sujets associés sur Google Groups.

Je suis l’initiateur du groupe, vous pouvez vous inscrire afin de participer au démarrage du groupe.

Ce groupe espère aider à l’assistance à l’utilisation de JMeter (tests de charges, stress, fonctionnel, performances, etc), les techniques (ou astuces) sur son utilisation et également les méthodologies de tests ainsi que l’analyse des résultats.

L’idée étant de progresser ensemble dans l’utilisation de JMeter.

L’adresse du groupe est : jmeter-fr@googlegroups.com, les archives sont lisibles par tout le monde, et il faut être membre pour envoyer des messages.

En espérant que ce groupe vivra longtemps et qu’il sera actif ! On compte sur vous !

Google Groupes
Abonnement au groupe JMeter en français
E-mail :

Visiter ce groupe

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 eBook Performance Testing Guidance for Web Applications par Microsoft (en anglais)

Voici un très bon ebook en anglais, il s’agit d’un guide sur les tests de performances, proposé en téléchargement et gratuitement par Microsoft via son site CodePlex.

(titre en anglais : Performance Testing Guidance for Web Applications)

C’est un livre de 221 pages, découpé en 8 parties (pour un total de 18 chapitres) :

  1. Une introduction aux tests de performances, qui vous donnera un aperçu des différents types de tests de performances, les concepts clés et le vocabulaire utilisé.
  2. Une approche modèle sur le test de performance, à travers 7 macro activités. Cette partie montre également comment intégrer les tests de performances dans les environnements Agile et CMMI.
  3. Identification de l’environnement de test, qui montre comme collecter les informations nécessaires sur un projet à tester, allant des architectures systèmes au activités utilisateurs, etc. Continuer la lecture de Livre eBook Performance Testing Guidance for Web Applications par Microsoft (en anglais)

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)

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.

./

[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.

Tir de charges : Quand les problèmes ne viennent pas du serveur d’applications

Pour les « grands » tirs de charges dont l’objectif est de tester une nouvelle application J2EE (ou JEE) avant sa mise en production, et afin d’éviter les crashs le jour du lancement, on mobilise en général une équipe des différents « corps de métier » informatiques.

On aura ainsi :

  • les « tireurs » ceux qui vont faire le tir de charges avec un outil dédié,
  • les fonctionnels qui assistent les tireurs pour la scénarisation du tir,
  • les préparateurs de données qui sont chargés de fournir des données aux injecteurs pour le tir,
  • les gens du réseau pour la surveillance du trafic et de la bande passante,
  • les DBA pour la surveillance de l’activité de la base de données,
  • les superviseurs des serveurs d’applications pour monitorer l’activité de l’application,
  • l’équipe de développement de l’application qui croisent les doigts,
  • et bien sur les chefs du fonctionnel et les chefs de la technique

Tout cela fait beaucoup de monde, on ajoutera en général un responsable général, chargé entre autre de synchroniser toutes les actions, et donner le GO du lancement.

Une fois que le tir lancé et terminé, l’expérience montre que c’est en général du coté du serveur d’applications J2EE que les problèmes sont visibles. Où s’ils ne sont pas visibles, on pense à lui en premier car c’est lui qui supporte l’application. Alors quand c’est vous le responsable de la supervision du cluster de serveurs d’applications, tout ce beau monde se retourne vers vous pour avoir l’explication, le comment du pourquoi, afin de comprendre la raison du non succès du tir de charge…

Pourtant vous avez fait une configuration des serveurs d’applications clustérisés aux petits oignons :

  • configuration de la taille minimum et maximum idéale pour ce type d’application
  • modification des paramètres de JVM pour avoir notamment un fonctionnement du Garbage Collector en (quasi) parallèle (Concurrent Mark Sweep)
  • réglage des unités d’exécution min et max, temps d’inactivité
  • réglage du pool de connexions à la base de données, avec activation du cache des requêtes SQL préparées
  • réglage du gestionnaire de sessions
  • activation du monitoring,
  • et d’autres petits réglages de derrière les fagots : taille des files d’attente TCP, nombre des requêtes keep-alive, etc

Alors avec ce tunning de folie, difficile de comprendre pourquoi le serveur d’applications souffre lors du tir de charges… Continuer la lecture de Tir de charges : Quand les problèmes ne viennent pas du serveur d’applications