JMeterのドキュメント を読んでいたときに、「If Controllers」に関するこの情報ボックスに出会いました。
条件がJavascriptとして解釈される場合、変数はスクリプトで使用できません。そのような変数にアクセスする必要がある場合は、「条件を変数式として解釈しますか?」を選択します。 __javaScript()関数呼び出しを使用します。その後、スクリプトでオブジェクト「vars」、「log」、「ctx」などを使用できます。
私はこれに従わない。これは、「ユーザー定義パラメーター」にアクセスしたい場合、JavaScriptを記述することによってのみアクセスできるということですか?このボックスに続く例では、「$ {COUNT}」を参照しています
誰かがIfコントローラーの使用方法を明確にすることができますか、おそらく1つまたは2つですか?
単純に次のようなものを使用できます
${my_variable}=='1'
JMeterのドキュメントはわかりにくい場合があります:)
2017年9月27日編集:
ここでの答えは機能しますが、スレッド数が40を超えると、はパフォーマンスに非常に悪い影響を与えます。
正しい最もパフォーマンスの高い回答については、以下を参照してください。
見る:
これらの答えはすべて間違っています!次のように、変数参照を引用符で囲む必要があります。
"${my_variable}"=="foo"
神に祝福を http://habrahabr.r これらが見つかるまで試してみました。
引用符を使用することが私の解決策でした。
CHECKBOX「条件を変数式として解釈する」のチェックを外す
このチェックボックスをオフにせずに数時間無駄にしました。ステートメントの最後にセミコロン(;)の有無にかかわらず動作しました。 ifコントローラーを呼び出す前に、ユーザー定義変数を設定したことを確認してください。
次のバリエーションはすべて、ジャカルタJmeter 1.5で機能しました。
Controllerが条件を評価するために内部的にjavascriptを使用する場合、パフォーマンスが低下する可能性があります。
より良いオプション(JMeter 4から始まるデフォルトのオプション https://bz.Apache.org/bugzilla/show_bug.cgi?id=61675 )は、「条件を変数式として解釈しますか? "、条件フィールドには2つのオプションがあります:
$ {JMeterThread.last_sample_ok}
またはtrue/falseを含む任意の変数
$ {myVar}
$ {__ jexl3( "$ {COUNT}" == "1"、)}
OR
$ {__ jexl3($ {COUNT} == 1、)}
4.0からは、「条件を変数式として解釈しますか?」を使用しない場合、赤色の警告が表示されます。
JMeterとパフォーマンステストの詳細については、この book が役立ちます。
Gerrieが変数をチェックする必要があると言ったように
${my_var} == 'value'
ただし、「 ユーザー定義変数 」には注意してください
テスト計画のすべてのUDV要素は、それらがどこにあっても、開始時に処理されることに注意してください。
これは基本的に、「If Controller」内で「User Defined Variables」を定義できないことを意味します。代わりに「BeanShell」をご覧ください。
置換:$ {my_variable} == '1'と "$ {my_variable}" == "1"
利用した ${code_g1}== 200
状態で、それは私のために働いた。