Notes JMeter

Réponse dépassant la taille maximale d’affichage dans l’arbre de résultats

Par défaut, la taille maximale d’une réponse affichée par JMeter dans le récepteur Arbre de résultats est 200 ko.

Pour enlever cette limite à « illimité », il faut éditer l’un ou l’autre de ces fichiers avec un éditeur de texte :

  • Jmeter_home\bin\jmeter.properties
  • ou le fichier Jmeter_home\bin\user.properties

Le paramètre à changer/ajouter est :

# Maximum size of HTML page that can be displayed; default=200 *  1024
# Set to 0 to disable the size check
view.results.tree.max_size=0

Avec 0, pas de limite… attention tout de même cela peut jouer des tours si c’est des (très) grandes données de réponses.

Forcer JMeter avec les menus en anglais

Editer le fichier JMETER_HOME/bin/jmeter.properties et modifier la ligne #language=en en language=en (sans le diése).

Ou bien, Pour vraiment forcer JMeter avec des menus et libellés en anglais, il faut ouvrir avec 7-Zip (ou Winzip, etc) le package JAR « ApacheJMeter_core.jar » situé dans JMETER_HOME/lib/ext/ et de supprimer le fichier messages_fr.properties.

Il y a d’autres fichiers xxxxx_fr.properties à supprimer si vous souhaitez avoir *tous* les textes en anglais, la liste est plus bas dans les commentaires (ici).

Augmenter la taille maximale de mémoire JVM pour JMeter

Afin d’éviter les erreurs OutOfMemoryError sur JMeter en cas de « gros » tests de charges, il est possible d’augmenter la taille de mémoire JVM maximum allouée. Pour cela, il faut éditer le fichier jmeter (Linux/Unix) ou jmeter.bat (Windows) situé dans le répertoire JMETER_HOME/bin/ et modifier la ligne suivante :

set HEAP=-Xms512m -Xmx1024m

(ici on démarre à 512 Mo et on peut aller jusqu’à 1024 Mo (1Go) au maximum.

Répertoire d’enregistrement et d’ouverture des fichiers JMeter par défaut

Pour que JMeter propose à l’enregistrement ou à l’ouverture un répertoire spécifique, il faut modifier le fichier jmeter.properties situé dans JMETER_HOME/bin.

Le paramètre user.dir permet de définir le répertoire voulu :

user.dir=/home/milamber/Documents/Jmeter_Tests/

ou sous Windows (en échappant le caractère ‘barre oblique inversée’ – le backslash – avec un premier backslash) :

user.dir=C:\\Users\\Milamber\\Documents\\Jmeter_Test\\

Ne pas développer l’arbre à l’ouverture d’un script JMeter

Par défaut, JMeter ouvre la structure de l’arbre d’un fichier de script JMeter lors de son chargement, il est possible de changer ceci avec le paramètre onload .expandtree.

Pour cela, il faut modifier le fichier jmeter.properties situé dans JMETER_HOME/bin, et ajouter cette ligne :

onload.expandtree=false

Utiliser un groupe d’unités désactivé plutôt que le plan de travail pour les éléments ‘brouillon’

En effet, le plan de travail n’est pas enregistré lors de la sauvegarde du script JMeter, vous perdez ainsi les éléments qui sont contenus dans le plan de travail (workbench).

Il suffit donc d’ajouter au Plan de test, un groupe d’unités (thread group), puis de le sélectionner, bouton droit de la souris, menu contextuel > Désactiver. Et hop, vous voilà avec un plan de travail qui sera enregistré lors des sauvegardes.

Faire des tests sur plusieurs environnements

En utilisant une propriété JMeter. Voir ce billet (en anglais)

./

Comment tester (ou accéder à) un site extérieur avec JMeter quand on est déjà derrière un proxy d’entreprise ?

Avec l’hypothèse que votre serveur proxy est : proxy.adresse.org et son port le 8080

En lançant JMeter avec les paramètres suivants :
Sous Linux / Unix

JMETER_HOME/bin/ jmeter -H proxy.adresse.org -P 8080

Sous Windows

JMETER_HOME\bin\jmeterw.cmd -H proxy.adresse.org -P 8080

On peut également ajouter l’option -N pour les sites devant être accessible sans passer par le proxy. Par exemple « -N *.domaine.com|localhost » pour ne pas passer par le proxy d’entreprise pour les sites avec le nom de domaine .domaine.com et pour les sites hébergés localment sur son poste.

Exemple avec un proxy demandant une authentification :

jmeter -H my.proxy.server -P 8080 -u username -a password -N localhost

Ces paramètres sont également configurable dans le fichier system.properties (situés dans bin)

  • http.proxyHost
  • http.proxyPort
  • https.proxyHost
  • https.proxyPort
  • http.proxyDomain

Ajouter le libellé des champs en entête du fichier de résultats CSV

Dans le fichier JMETER_HOME/bin/jmeter.properties, décommenter (en enlevant le #) cette ligne :

#jmeter.save.saveservice.print_field_names=false

et la mettre à true, pour avoir :

jmeter.save.saveservice.print_field_names=true

Cela permet d’avoir dans le fichier CSV une première ligne avec le libellé des champs.

Avoir le style graphique GTK+ pour l’interface graphique de JMeter

Dans le fichier JMETER_HOME/bin/jmeter.properties (ou user.properties), ajouter cette ligne :

jmeter.laf.linux=com.sun.java.swing.plaf.gtk.GTKLookAndFeel

Avoir un nom de fichier de logs différent pour chaque lancement de tests

Dans un récepteur, au niveau du champ Nom de fichier (section Ecrire les données dans un fichier), mettre un nom de fichier utilisant la fonction JMeter __time(), par exemple :

/tmp/resultats-${__time(yyyyMMdd-HHmm,)}.csv

Lancer JMeter en ouvrant directement le dernier scénario utilisé

A partir du répertoire JMeter_home/bin (ou bien dans un raccourci bureau), exécuter la commande suivante :

Si Linux / Mac :

./jmeter -t LAST

ou si Windows

jmeterw.bat -t LAST

./

9 réflexions au sujet de « Notes JMeter »

  1. Pour avoir l’application en anglais, il existe un paramètre à cet effet dans le jmeter.properties (JMETER_HOME/bin/). Enlever le # devant la ligne language=en.

  2. Oui la propriétés language=en/fr etc. permet de changer la langue. Mais à l’époque (version 2.0) ce n’était pas suffisant lorsque le système d’exploitation était par exemple en français, et que l’on veut JMeter en anglais. (lecture du code de langue via la JVM)
    Merci, j’ai modifié la note.

  3. En 2.3.4 pour forcer les menus en anglais, la manip décrite plus haut ne suffit plus ou est incomplète.
    Je lutte pour avoir tout en anglais en ce moment 🙁

  4. Salut Eudes,
    Pour avoir tout en anglais, il y a en effet d’autres fichiers properties ‘fr’ à supprimer.

    Voici la liste complète :
    ./components/org/apache/jmeter/sampler/DebugSamplerResources_fr.properties
    ./components/org/apache/jmeter/config/RandomVariableConfigResources_fr.properties
    ./components/org/apache/jmeter/config/CSVDataSetResources_fr.properties
    ./components/org/apache/jmeter/visualizers/BSFListenerResources_fr.properties
    ./components/org/apache/jmeter/visualizers/BeanShellListenerResources_fr.properties
    ./components/org/apache/jmeter/extractor/BeanShellPostProcessorResources_fr.properties
    ./components/org/apache/jmeter/extractor/DebugPostProcessorResources_fr.properties
    ./components/org/apache/jmeter/extractor/BSFPostProcessorResources_fr.properties
    ./components/org/apache/jmeter/timers/SyncTimerResources_fr.properties
    ./components/org/apache/jmeter/timers/BeanShellTimerResources_fr.properties
    ./components/org/apache/jmeter/timers/ConstantThroughputTimerResources_fr.properties
    ./components/org/apache/jmeter/assertions/CompareAssertionResources_fr.properties
    ./components/org/apache/jmeter/assertions/BSFAssertionResources_fr.properties
    ./components/org/apache/jmeter/modifiers/BSFPreProcessorResources_fr.properties
    ./components/org/apache/jmeter/modifiers/BeanShellPreProcessorResources_fr.properties
    ./protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources_fr.properties
    ./protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources_fr.properties
    ./protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSamplerResources_fr.properties
    ./core/org/apache/jmeter/resources/messages_fr.properties

    Ils sont répartis dans les fichiers Jar (lib/ext).

    A+
    Milamber

  5. Merci Milamber, cela fonctionne bien à présent (non pas que je n’aime pas le francais, mais les deux mélangés me donnent mal à la tête 🙂 )

    Autre point de différence sur la 2.3.4 : le user.dir sous windows doit ‘escaper’ le caractère ‘\’. Du coup on a user.dir=C:\\Users\\Milamber\\Documents\\Jmeter_Test\\
    Idem pour les autres chemins que l’on peut définir (ex : includecontroller.prefix)

    @+

  6. Merci, c’est corrigé, j’ai aussi modifié pour ajouter une mention sur le « forçage » de l’anglais.

  7. salut,

    J’ai des soucis avec l’affichage de mes rapports créés à partir de ant.
    En effet je n’arrive pas à afficher les données de temps MIN et MAX. Ils prennent systématiquement la valeur NAN.

    J’ai cru comprendre qu’avec une version de JDK supérieure au 1.3, ces données ne s’afficheraient plus. Existe t-il une solution ?

  8. Bonjour à tous,

    Juste une note pour vous donner la solution à mes soucis d’affichage les données de temps MIN et MAX qui prenaient systématiquement la valeur NaN dans mes rapports html (générer avec ANT):

    En fait il faut modifier, uniquement, votre fichier build.xml:

    1) Rajouter une nouvelle propriété en début de fichier, par exemple :

    répertoire lib dans lequel vont se trouver les fichiers xalan_2_7_1.jar et serializer-2_9_1.jar

    2) Dans la définition de de votre ou vos , au niveau de la balise , rajouter les deux lignes suivantes :

    classpathref= »xslt.classpath »
    force= »true »

    ceci permettra de forcer ANT à aller chercher le bon interpréteur XSL, qui donne dans votre fichier build.xml:

    3) Puis , tout à la fin de votre fichier build.xml ne pas oublier de rajouter le xslt.classpath pour être sur de pointer ver les bon fichiers .jar (avant la balise «  » ) :

    voici mon fichier build.xml comme exemple:

Les commentaires sont fermés.