Je lisais la documentation JMeter et suis tombé sur cette boîte d'informations sur "If Controllers":
Aucune variable n'est mise à la disposition du script lorsque la condition est interprétée comme Javascript. Si vous avez besoin d'accéder à ces variables, sélectionnez "Interpréter la condition comme une expression variable?" et utilisez un appel de fonction __javaScript (). Vous pouvez ensuite utiliser les objets "vars", "log", "ctx" etc. dans le script.
Je ne suis pas tout à fait d'accord. Est-ce à dire que si je veux accéder à un "paramètre défini par l'utilisateur", je ne peux y accéder qu'en écrivant du JavaScript? L'exemple qui suit cette case fait ensuite référence à "$ {COUNT}"
Quelqu'un pourrait-il clarifier l'utilisation du contrôleur If, peut-être avec un exemple ou deux?
Vous pouvez simplement utiliser quelque chose comme
${my_variable}=='1'
Parfois, la documentation JMeter peut être source de confusion :)
Edit 27 septembre 2017:
La réponse fonctionne ici mais a un très mauvais impact sur les performances lorsque le nombre de threads dépasse 40.
Voir ci-dessous pour la réponse correcte et la plus performante:
Voir:
Toutes ces réponses sont fausses! Vous devez mettre la référence de variable entre guillemets, comme ceci:
"${my_variable}"=="foo"
Que Dieu bénisse le http://habrahabr.r Ont essayé jusqu'à ce que trouvé ces derniers.
Utiliser les guillemets était ma solution.
Décochez la case "Interpréter la condition comme expression de variable"
J'ai perdu quelques heures sans décocher cette case. Cela a fonctionné avec et sans point-virgule (;) à la fin de l'instruction. Assurez-vous d'avoir défini les variables définies par l'utilisateur avant d'appeler le contrôleur if.
Toutes les variantes suivantes ont fonctionné pour moi dans Jakarta Jmeter 1.5
Si le contrôleur utilise en interne javascript pour évaluer la condition, mais cela peut entraîner une baisse des performances.
Une meilleure option (par défaut à partir de JMeter 4, voir https://bz.Apache.org/bugzilla/show_bug.cgi?id=61675 ) consiste à vérifier " Interpréter la condition comme une expression variable? ", alors dans le champ de condition vous avez 2 options:
$ {JMeterThread.last_sample_ok}
ou toute variable que vous voulez qui contient vrai/faux
$ {myVar}
$ {__ jexl3 ("$ {COUNT}" == "1",)}
OR
$ {__ jexl3 ($ {COUNT} == 1,)}
À partir de 4.0, si vous n'utilisez pas la "Interpréter la condition comme une expression variable?", Un avertissement en ROUGE s'affiche:
Si vous souhaitez en savoir plus sur JMeter et les tests de performances, cela livre peut vous aider.
Comme l'a dit Gerrie, vous devez vérifier votre variable
${my_var} == 'value'
Mais soyez prudent avec les ' Variables définies par l'utilisateur '
Notez que tous les éléments UDV d'un plan de test - quel que soit leur emplacement - sont traités au démarrage.
Cela signifie essentiellement que vous ne pouvez pas définir de "variables définies par l'utilisateur" dans un "contrôleur If". Jetez plutôt un œil au "BeanShell".
Remplacez: $ {my_variable} == '1' par "$ {my_variable}" == "1"
J'ai utilisé ${code_g1}== 200
en état et cela a fonctionné pour moi.