5

応答と期間アサーションを含む 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.

私は何か間違ったことをしていますか、それは私が望むことさえ可能ですか?

前もって感謝します。

4

1 に答える 1