web-dev-qa-db-ja.com

JMeter「if controller」パラメーター付き?

JMeterのドキュメント を読んでいたときに、「If Controllers」に関するこの情報ボックスに出会いました。

条件がJavascriptとして解釈される場合、変数はスクリプトで使用できません。そのような変数にアクセスする必要がある場合は、「条件を変数式として解釈しますか?」を選択します。 __javaScript()関数呼び出しを使用します。その後、スクリプトでオブジェクト「vars」、「log」、「ctx」などを使用できます。

私はこれに従わない。これは、「ユーザー定義パラメーター」にアクセスしたい場合、JavaScriptを記述することによってのみアクセスできるということですか?このボックスに続く例では、「$ {COUNT}」を参照しています

誰かがIfコントローラーの使用方法を明確にすることができますか、おそらく1つまたは2つですか?

25
Ben Flynn

単純に次のようなものを使用できます

${my_variable}=='1'

JMeterのドキュメントはわかりにくい場合があります:)

2017年9月27日編集:

ここでの答えは機能しますが、スレッド数が40を超えると、はパフォーマンスに非常に悪い影響を与えます。

正しい最もパフォーマンスの高い回答については、以下を参照してください。

見る:

20
Gerrie Schenck

これらの答えはすべて間違っています!次のように、変数参照を引用符で囲む必要があります。

"${my_variable}"=="foo"
33
jameshfisher

神に祝福を http://habrahabr.r これらが見つかるまで試してみました。 enter image description here

引用符を使用することが私の解決策でした。

8
user1355677

CHECKBOX「条件を変数式として解釈する」のチェックを外す

このチェックボックスをオフにせずに数時間無駄にしました。ステートメントの最後にセミコロン(;)の有無にかかわらず動作しました。 ifコントローラーを呼び出す前に、ユーザー定義変数を設定したことを確認してください。

次のバリエーションはすべて、ジャカルタJmeter 1.5で機能しました。

  • $ {__ javaScript( "$ {HOMEPAGE}" == "Y")}
  • $ {__ javaScript( "$ {HOMEPAGE}" == "Y")};
  • 「$ {HOMEPAGE}」== "Y"
  • "$ {HOMEPAGE}" == "Y";
8
blogme4u

Controllerが条件を評価するために内部的にjavascriptを使用する場合、パフォーマンスが低下する可能性があります。

より良いオプション(JMeter 4から始まるデフォルトのオプション https://bz.Apache.org/bugzilla/show_bug.cgi?id=61675 )は、「条件を変数式として解釈しますか? "、条件フィールドには2つのオプションがあります:

  • オプション1:trueまたはfalseを含む変数を使用します。たとえば、最後のサンプルが成功したかどうかをテストする場合は、次を使用できます。

$ {JMeterThread.last_sample_ok}

If Controller starting with JMeter 3.4

またはtrue/falseを含む任意の変数

$ {myVar}

  • オプション2:関数($ { __ jexl ()}を推奨)を使用して、trueまたはfalseを返す必要がある式を評価します。たとえば、COUNTが1に等しい場合:

$ {__ jexl3( "$ {COUNT}" == "1"、)}

OR

$ {__ jexl3($ {COUNT} == 1、)}

If Controller with expression starting with JMeter 3.4

4.0からは、「条件を変数式として解釈しますか?」を使用しない場合、赤色の警告が表示されます。

If Controller using javascript in JMeter 3.4

JMeterとパフォーマンステストの詳細については、この book が役立ちます。

7
UBIK LOAD PACK

Gerrieが変数をチェックする必要があると言ったように

${my_var} == 'value'

ただし、「 ユーザー定義変数 」には注意してください

テスト計画のすべてのUDV要素は、それらがどこにあっても、開始時に処理されることに注意してください。

これは基本的に、「If Controller」内で「User Defined Variables」を定義できないことを意味します。代わりに「BeanShell」をご覧ください。

5
Carlos Tasada

置換:$ {my_variable} == '1'と "$ {my_variable}" == "1"

3
Carlos

Check the image

利用した ${code_g1}== 200状態で、それは私のために働いた。

0