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.

SQLite est conçue pour être légère, plus efficace qu’un fichier texte, et permettre d’exécuter des requêtes SQL sur des données (‘normal’ vous me direz). Il tient en un seul exécutable, et fonctionne sur Windows, Unix/Linux ou Mac, simple donc.

Que peut-on faire avec SQLite et son fichier de résultats CSV provenant du tir de charges JMeter :

  • Importer pratiquement directement le fichier de résultats CSV JMeter dans la base SQLite.
  • Trier ses résultats dans l’ordre, en effet les données dans le fichier CSV ne sont pas toujours (souvent) dans l’ordre chronologique (car la date donnée est celle du début de la requête, mais son écriture dans le fichier CSV dépend de la fin d’exécution – le temps de réponse – de la requête)
  • Agréger ses résultats par intervalle de temps, par échantillons, par contrôleurs, etc.
  • Sélectionner simplement des données par intervalle de temps ou nombre d’utilisateurs virtuels (exclure les périodes de montée en charges, par exemple)
  • Croiser ses données (faire des « tableaux croisés dynamiques » ou pivot)

Pour résumer, il est possible de faire beaucoup de choses, à cause et grâce aux requêtes SQL avec SQLite, ceci de manière simple par rapport à une base de données ‘plus grosse’ (disons relationnelle) ou bien même par rapport à Access ou Base qui se révelent bien lentes avec 400 000 lignes dans une même table.

Dans le billet suivant, je vous propose un mode d’emploi.

Une réflexion sur « JMeter et la création du rapport de tir de charges »

Les commentaires sont fermés.