応答と期間アサーションを含む HTTP 要求サンプラーがあります。応答アサーションが失敗すると、次の HTTP 要求サンプラーの実行が許可されなくなりました。期間アサーションが失敗した場合にのみ、次の HTTP 要求サンプラーの実行が許可されます。
IF Controller
私はチェックでこれを始めました${JMeterThread.last_sample_ok}
が、それは、応答アサーションしか配置されていなかったときでした。期間アサーションと新しい要件を追加すると、これは適用されなくなりました。
期間アサーションが失敗したときに特定の変数を追加するために、BeanShell ポスト プロセッサを試しました。しかし、次のコードは、期間アサーションが失敗したときに、常に空の配列イベントを返してくれます。
BeanShell ポスト プロセッサ コード:
import org.apache.jmeter.assertions.AssertionResult;
AssertionResult[] results = prev.getAssertionResults();
if (results.length == 0) {
vars.put("assertions_have_zero_length", "true");
}
//debug post processor shows the above variable.
BeanShell リスナーも使用しようとしましたが、これにより 2 つのアサーションが返されますが、特定の変数を作成 (配置) すると、デバッグ ポスト プロセッサには表示されません。
BeanShell リスナー コード:
import org.apache.jmeter.assertions.AssertionResult;
AssertionResult[] results = sampleResult.getAssertionResults();
System.out.println("Current counter value = " + results.length);
if (results.length == 0) {
vars.put("assertions_have_zero_length", "true");
} else {
vars.put("assertions_have_zero_length", "false");
}
//no assertion_have_zero_length variable shown in debug post processor.
私は何か間違ったことをしていますか、それは私が望むことさえ可能ですか?
前もって感謝します。