失敗後に前のサンプルの応答がOKに変更された場合、JMeterのifコントローラーをスキップするにはどうすればよいですか?

RVP

JMeter Beanshellサンプラーテストを実行しています。その後、最後のJMeterサンプルに問題がない場合に実行するifコントローラーがあります。

私はこれを機能させていますが、最初のテストが失敗した場合は、合格に変更する必要がありますが、ifコントローラーに続行されないことを確認する必要があります。

テストの応答アサーションでステータスを無視するチェックボックスをオンにして、前のテスト応答をOKに変更するBeanShellPostProcessorを追加してみました。これらは、ifコントローラーに続行されるため、オプションではありません。

したがって、-テストに合格した場合はコントローラーが完了した場合に続行します-テストが失敗した場合は合格に変更しますが、コントローラーの場合はスキップします

これを達成する方法について何か提案はありますか?

ありがとう

ドミトリT

次のようにテストを設計することをお勧めします。

  1. Counter config要素を追加し、次のように構成します。

    • 開始: 1
    • インクリメント: 1
    • 参照名: N
  2. 最初のテストの子としてBeanshellPostProcessorを追加し、次のコードをその「スクリプト」領域に配置します

    int test = Integer.parseInt(vars.get("N"));
    
    if (test == 1 && !prev.isSuccessful()) {
        prev.setSuccessful(true);
    }
    
  3. 最初のテストの後にIfControllerを追加し、次の条件を使用します。

    ${JMeterThread.last_sample_ok} && "${N}" != 1
    

そう

  • カウンターは現在のテスト番号を保持し、それをJMeter変数に保存します N
  • Beanshell PostProcessorは、テストが「最初」で「失敗」した場合、テストを成功としてマークします。
  • 次の条件が満たされた場合にコントローラーがネストされたサンプラーを実行する場合:

    • 前のテストは成功しました
    • 前のテストは「最初」ではありません

JMeterサンプラーの適切な条件付き実行の詳細については、「JMeterの「IF」コントローラーの使用方法とPieガイドの入手方法」を参照してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ