0

これは私が持っているものです:

. . .
Loop Controller
+- HTTP Request getting data from one source
   +- BSF PostProcessor copying the data from the request into variables
+- SOAP/XML-RPC Request getting data from another source
   +- XPath Extractors (several) copying the data from the request into variables
+- If Controller
   +- BSF PostProcessor
. . .

View Results Tree から Debug Sampler を使用して、すべての変数が適切に設定されていることを確認できます。

私はいくつかのことを試しました。私が検索したものはすべて、If Controller を使用する必要があることを示唆しています。はい、If コントローラーが有効になっています。

私が実際に行う必要があるのは、この比較です: "${opp_Name1}" == "${opp_Name1}"; <-- セミコロンの有無にかかわらず比較を行いましたが、違いはありません。

ビューの結果ツリーを見ると、If コントローラーが起動しているようには見えません。If Controller の下には、条件が true の場合に別の変数を設定する BSF PostProcessor があります。この新しい変数は実行後に Debug Sampler に表示されませんが、他のすべての変数は Debug Sampler に期待どおりに表示されます。If Controller では、「条件を変数式として解釈しますか?」でも実行してみました。チェックありとチェックなしの違いはありません。

提案やアイデアはありますか?

4

1 に答える 1

1

うーん。次のスキーマに従って、私は正常に動作します。

. . .
Loop Controller
+- BeanShell Sampler : vars.put("var1","test");
+- BeanShell Sampler : vars.put("var2","test");
+- If Controller : "${var1}"=="${var2}"
   +- BeanShell Sampler
. . .

(条件は「true」として解決され、子サンプラーが実行されます)。


これに対するいくつかの注意:

  1. jmeter.log(%JMETER_HOME%/ bin dir)を調べて、IFコントローラーからのメッセージの可能性を確認します(コードの解釈中にエラーが発生した場合、条件はfalseと見なされ、メッセージはjmeter.logに記録されます)。

  2. 「条件を変数式として解釈しますか?」チェックボックスのチェックを外します。IFコントローラのコントロールパネル-チェックした場合。

  3. これに対する答えを調べてください:JMeter「ifcontroller」とパラメーター?。これは役立つかもしれません。

于 2012-05-31T10:28:04.757 に答える