Jmeter est le logiciel libre historique pour les tests de performance même si des challengers sont en train d'émerger (ex: Gatling).
Je vais montrer un exemple simple de chargement en parallèle de plusieurs clients dans OpenERP.
Le principe est d'enregistrer un scénario et de le rejouer avec en entrée, un fichier de plusieurs clients et en parallélisant ce scénario.
Installation de Jmeter (v2.5.1)
Sur Debian :
apt-get install jmeter
Paramétrage de Jmeter
- lancement Jmeter
- création d'un groupe d'unités ...
... et remplir le champ "nb unités" pour simuler 5 utilisateurs en parallèle
- création source de données CSV ...
... remplir le champ "nom de fichier"et le champ "noms des variables" (avec la variable "nom_client")
... et créer le fichier
- création "paramétrage http par défaut" ...
... et remplir les champs "adresse ip" et "port"
- création "gestion de cookies http"
- création "serveur proxy http" qui va nous servir pour l'enregistrement du scénario (attention, click droit sur "plan de travail" et non pas sur "plan de test" comme précédemment) ...
... et le déplacer (par click gauche) dans "plan de test"
- création "contrôleur enregistreur"
- création "arbre de résultats"
Paramétrage du navigateur
Pour enregistrer le scénario, il faut configuration dans notre navigateur (ex: chromium) le serveur proxy de Jmeter (en l'occurence localhost:8080)
ce qui conduit normalement pour l'instant à une erreur quand nous lançons OpenERP
Présentation du scénario
Le scénario consistera à s'identifier sur OpenERP, aller dans le menu "clients" puis créer un client avec comme nom "toto" et enfin se déconnecter.
Enregistrement du scénario
- lancer le serveur proxy de Jmeter en cliquant sur le bouton "lancer"
- aller dans votre navigateur et appeler OpenERP
- réaliser dans OpenERP, le scénario présenté plus haut
- arrêter le serveur proxy ce qui arrête l'enregistrement
Le résultat est alors l'affichage des requêtes http enregistrées
- enregistrer le plan de test (ex: Plan de test blog.jmx)
- quitter Jmeter
Adaptation du plan de test
Le scénario enregistré étant "en dur" (création client "toto"), nous allons devoir modifier le plan de test pour le variabiliser avec le fichier "clients.csv" en entrée.
L'utilisation normale de Jmeter consiste à trouver la bonne requête http sous "contrôleur enregistreur" et la modifier.
Or dans le cas de OpenERP, le moindre scénario génére de nombreuses requêtes http qui plus est, avec du contenu JSON et il n'est pas facile de retrouver notre requête.
Aussi, j'utilise la méthode suivante qui n'est pas très orthodoxe mais qui marche !!
- ouvrir le fichier "Plan de test blog.jmx" avec un éditeur classique et rechercher le terme "toto"
- remplacer "toto" par "${nom_client}"
- relancer Jmeter et ouvrir le plan de test "Plan de test blog.jmx"
- lancer le plan de tests ...
... les 5 clients ont été créés