2017-05-03 45 views
-2

私のシナリオは:オブジェクトを作成しました。そのオブジェクトのログを取得する必要があります。ログには、runningまたはfinishedなどのステータスを持つ10個のIDが含まれます。の場合は、次のサンプラーを実行する必要があります。失敗した場合は、ループを終了します。コントローラでJMeterのJSON Extractorを読み込む方法は?

${__javaScript("${IDstatus}" !="FINISHED")}while controllerを試しました。ループは決して終了しません。状態はfinishedです。

+1

あなたはJSONオブジェクトの詳細情報を共有していただけますか? –

+0

私は今スクリーンショットを投稿できません。しかし、私はあなたの要件を達成することができました。 'JSON Extractor'を使ってレスポンスを抽出し、' For Each Controller'を追加し、JSON抽出子の 'input variable'を入力すると、' Start Index'が '0'、End Index'が空白のままです。 'Output Variable Name'に' returnVar'を入力してください。今度は 'If controller'を追加し、' '$ {returnVar}" == "finished" 'という条件を入力してください。条件が満たされた場合、それぞれのサンプラーが実行され、そうでない場合は実行されます。これがあなたを助けてくれたら教えてください。 JSR223サンプラーを使っても同じことができます。 –

+0

答えをありがとう。目的のソリューションは機能していないようです。 foreachコントローラ全体を単にスキップします。私は要求にグローバル変数を使用してforeachコントローラを2番目のスレッドグループに保持しています コントローラで唯一の問題は、条件を読み取っていなくても要求を実行し続けていることです。 json extractorで一致数= 1を指定した場合でも条件が正常に機能しましたが、すべての10個のIDのステータスをチェックしたいと思います。 – userJmeter

答えて

0

JSONレスポンスにはfinished文字列が含まれており、FINISHEDと比較しています。 JavaScriptで文字列とてもx!= X

JavaScript String Comparison

大文字と小文字が区別あるので、私の期待は、あなたがあなたの中コントローラの状態が

${__javaScript("${IDstatus}" !="finished")} 

あなたの期待通りにコントローラが作業を開始しますがに変更した場合ということです。

参考文献:

+0

ここに設定があります。条件は$ {__ javaScript( "$ {Status}"!= "FINISHED")}とjson expr $ .. [0] .idと一致します。-1.Screen Shot 2017-05-04 at 10.23.02 AM。ステータス文字列は終了しました – userJmeter

+0

申し訳ありませんexprsは$ .. [0] .statusです – userJmeter

関連する問題