JMeter 5.4.1 & Non GUI......13 paramètres -J et pas un de plus

74 views
Skip to first unread message

Jean-Marie Markowski

unread,
Oct 4, 2021, 1:21:14 PM10/4/21
to JMeter en français
Bonjour à tous,
Je reviens vers vous avec une constatation qui me bloque.
En effet, je démarre mes scénarii à partir de JENKINS et par conséquent je fais usage de nombreux paramètres en CLI.
Le problème réside particulièrement lorsque j'utilise plus de 13 paramètres -J
Exemple : 
jmeter.bat -JParam01=1 -JParam02=1 -JParam03=1 -JParam04=1 -JParam05=1 -JParam06=1 -JParam07=1 -JParam08=1 -JParam09=1 -JParam10=1 -JParam11=1 -JParam12=1 -JParam13=1 -JParam14=1 -n -t test.jmx

Lorsque vous exécuter le scénario on a une erreur :
errorlevel=-1073741819
Appuyez sur une touche pour continuer...

lorsque vous exécuter :
jmeter.bat -JParam01=1 -JParam02=1 -JParam03=1 -JParam04=1 -JParam05=1 -JParam06=1 -JParam07=1 -JParam08=1 -JParam09=1 -JParam10=1 -JParam11=1 -JParam12=1 -JParam13=1 -n -t test.jmx

Il n'y a plus de problème :)
Je sais que je pourrai utiliser la paramètre -q
Exemple : 
jmeter.bat -l TEST.jtl -j TEST.log -q test.properties -n -t test.jmx

J'utilise le JRE 1.8.161

Ma question serait de savoir pourquoi il y un limite et d'où elle vient.

Merci d'avance

Vincent Daburon

unread,
Oct 6, 2021, 8:57:13 AM10/6/21
to JMeter en français
Bonjour,
Le parametre -q mon_fichier.properties merge les properties de ce fichier avec jmeter.properties et user.properties
Le paramètre -q mon_fichier.properties est uniquement une mono instance de JMeter pour les tests avec plusieurs injecteurs c'est -Gmon_fichier.properties avec les properties du fichier indiqué par -G qui est envoyé à l'ensemble des injecteurs.

Je ne réponds par directement à ton interrogation mais je propose une autre solution pour gérer des paramètres externes via Jenkins (ou sans Jenkins).

Une solution alternative est d'utiliser jmeter-maven-plugin et de déclarer les properties dans la partie
                    <propertiesUser>
                        <!-- emplacement des fichiers csv -->
                        <dirProjet>${project.build.directory}/jmeter</dirProjet>
                        <dirData>${project.build.directory}/jmeter/testFiles</dirData>
                       
                        <mise_au_point>${mise_au_point}</mise_au_point>
                       
                        <SC01_nb_users>${SC01_nb_users}</SC01_nb_users>
                        <SC01_rampup_time>${SC01_rampup_time}</SC01_rampup_time>
                        <SC01_loop_count>${SC01_loop_count}</SC01_loop_count>
                        <SC01_duration>${SC01_duration}</SC01_duration>
                        <SC01_startup_delay>${SC01_startup_delay}</SC01_startup_delay>
                       
                        <SC03_nb_users>${SC03_nb_users}</SC03_nb_users>
                        <SC03_rampup_time>${SC03_rampup_time}</SC03_rampup_time>
                        <SC03_loop_count>${SC03_loop_count}</SC03_loop_count>
                        <SC03_duration>${SC03_duration}</SC03_duration>
                        <SC03_startup_delay>${SC03_startup_delay}</SC03_startup_delay>

                    </propertiesUser>
Les valeurs de properties sont définies par défaut dans le pom.xml
        <!-- Ces properties peuvent etre surchargees (changees) au lancement avec
        mvn -Dparam=value, ex -DSC01_nb_users=5 va remplacer avec la valeur 5 la valeur par defaut 3
        et/ou on utilise un profil -->
        <SC01_nb_users>3</SC01_nb_users>
        <SC01_rampup_time>30</SC01_rampup_time>
        <SC01_loop_count>-1</SC01_loop_count>
        <SC01_duration>120</SC01_duration>
        <SC01_startup_delay>0</SC01_startup_delay>
       
        <SC03_nb_users>2</SC03_nb_users>
        <SC03_rampup_time>30</SC03_rampup_time>
        <SC03_loop_count>-1</SC03_loop_count>
        <SC03_duration>110</SC03_duration>
        <SC03_startup_delay>0</SC03_startup_delay>

et elles sont également renseignées dans des profils maven
    <profiles>
        <profile>
            <id>tir_chauffe</id>
            <properties>
                <SC01_nb_users>1</SC01_nb_users>
                <SC01_rampup_time>1</SC01_rampup_time>
                <SC01_loop_count>5</SC01_loop_count>
                <SC01_duration>7200</SC01_duration>
                <SC01_startup_delay>0</SC01_startup_delay>
                <SC03_nb_users>1</SC03_nb_users>
                <SC03_rampup_time>1</SC03_rampup_time>
                <SC03_loop_count>5</SC03_loop_count>
                <SC03_duration>7200</SC03_duration>
                <SC03_startup_delay>0</SC03_startup_delay>
                <mise_au_point>true</mise_au_point>
            </properties>
        </profile>
        <profile>
            <id>tir_50pct_charge_1_plateau_10min</id>
            <properties>
                <SC01_nb_users>4</SC01_nb_users>
                <SC01_rampup_time>60</SC01_rampup_time>
                <SC01_loop_count>-1</SC01_loop_count>
                <SC01_duration>600</SC01_duration>
                <SC01_startup_delay>0</SC01_startup_delay>
                <SC03_nb_users>3</SC03_nb_users>
                <SC03_rampup_time>60</SC03_rampup_time>
                <SC03_loop_count>-1</SC03_loop_count>
                <SC03_duration>600</SC03_duration>
                <SC03_startup_delay>0</SC03_startup_delay>
                <mise_au_point>false</mise_au_point>
            </properties>
        </profile>
        <profile>
            <id>tir_ic_100pct_charge_1_plateau_20min</id>
            <properties>
                <SC01_nb_users>8</SC01_nb_users>
                <SC01_rampup_time>60</SC01_rampup_time>
                <SC01_loop_count>-1</SC01_loop_count>
                <SC01_duration>1200</SC01_duration>
                <SC01_startup_delay>0</SC01_startup_delay>
                <SC03_nb_users>6</SC03_nb_users>
                <SC03_rampup_time>60</SC03_rampup_time>
                <SC03_loop_count>-1</SC03_loop_count>
                <SC03_duration>1200</SC03_duration>
                <SC03_startup_delay>0</SC03_startup_delay>
                <mise_au_point>false</mise_au_point>
            </properties>
        </profile>

au lancement, on choisit d'ajouter ou non le profil pour prendre les valeurs des différents profils.
Ex : mvn -Ptir_50pct_charge_1_plateau_10min verify


Et pour les graphes, ce plugin :

Cordialement
Vincent DAB.

Hani Digou

unread,
May 30, 2023, 1:47:53 PM5/30/23
to JMeter en français
Bonjour,
Je Up le sujet car j'ai le même problème et je n'utilise pas le plugin maven jmeter.
Je lance mes tests jmeter sous Jenkins avec une vingtaines de paramètres saisissables au lancement d'un job Jenkins, et une ligne de commande cmd windows de ce type :
jmeter.bat -n -t  test.jmx  -q  settings.properties
y a t-il un moyen de référencer les params du build jenkins sur par exemple le fichier settings.properties ? j'ai essayé plusieurs moyens mais sans succès (avec les %%, ${}...)
merci pour votre aide

Vincent Daburon

unread,
Jun 1, 2023, 4:05:07 AM6/1/23
to JMeter en français
Bonjour,
Je pense à une solution avec l'outil Ant et le remplacement de balises dans un fichier template
https://ant.apache.org/manual/Tasks/replace.html

Je pense aussi à l'utilisation de groovy et la classe groovy.text.StreamingTemplateEngine
https://stackoverflow.com/questions/39147966/jenkins-pipeline-templating-a-file-with-variables

Tu peux également créé un fichier temporaire qui va contenir les paramètres du build
echo "param1=${JENKINS_PARAM1} \n" > my.properties
echo "param2=${JENKINS_PARAM2} \n" >> my.properties

Cordialement
Vincent DAB.

Hani Digou

unread,
Jun 5, 2023, 3:59:26 AM6/5/23
to JMeter en français
J'ai résolu le problème en passant directement les paramètres saisisables sur mon job Jenkins au niveau commande Windows de cette façon :
jmeter.bat -n -t  test.jmx  -q  settings.properties -Jjenkinsparams="%protocole%,%host%,%port%,%chemin%,%exercice%,%CDUT%,%hostSSH%,%userSSH%,%pswSSH%,%LOGWIN%,%LOGUNIX%,%userMag2%,%pswMag2%,%path_mag2%"
et j'ai splité mes param sur le plan  de tests jmeter comme ceci :
String line = "${__P(jenkinsparams)}";

String[] words = line.split(",");

vars.put("protocole",words[0]);

...etc

Cordialement

Jean-Marie Markowski

unread,
Jun 8, 2023, 2:51:52 AM6/8/23
to JMeter en français
Bonjour à tous,
Le problème de la limite de 13 proprités envoyées à JMeter via une commande en ligne vient d'être supprimée.
En effet, je travaille depuis le mois de février sur la même plateforme mais en Windows Serveur 2022.
J'envoi 14 proprités sans aucun problèmes.
Pour info, j'utilise la config suivante :
  • Windows Serveur 2022
  • JAVA jdk-17.0.7+7 (x64)
  • Jenkins 2.401.1
Je vais essayer d'envoyer plusieurs autres propriétés supplémentaires et je ferai un retour.

Bonne journée

Vincent Daburon

unread,
Jun 13, 2023, 5:08:26 AM6/13/23
to JMeter en français
Je pense qu'il peut aussi s'agir d'une limite dans la taille cumulée des parametres.
Par exemple la taille de tous les parametres sont < 1024 caractères.
Et que passer à Windows Server 2022 la taille a augmenté par exemple à 32 KO.
Reply all
Reply to author
Forward
0 new messages