4

こんにちは !

私の問題を明確に説明しようとします。

コンテキスト

HTTPリクエストをサーバーに送信するJMeter TestPlanがあります。返されるエラーのさまざまなケースをアサートする Beanshell スクリプトがあります。

  • 302 応答コード -> OK
  • 200 応答コード -> ?

エラー 200 ごとに、応答データ文字列をチェックして、それがエラーか正しいケースかを確認します。( User don't have right rightsのようなユーザー エラーはOK ですが、Server is availableERRORで、どちらも応答コードとして 200 を持っています。)

ここに私のテスト計画があります:

TestPlan JMeter

目標

1 つのアサーション スクリプトだけで複数のエラーが返されるため、ViewResultTree. ただし、テストを起動するときは無効にし、TestPlan をリモートで起動します。

各エラーを手動でカウントするというアイデアがありました。サンプルはすべてアサーション スクリプトに入り、ifその内容に従って正しいブロックに移動します。各ブロックでいくつかの変数(実際には JMeter.properties)をインクリメントします。

int test = Integer.parseInt(props.getProperty("302"));
test++;
props.setProperty("302", ""+test);

次のように、テストプランの最後にこれらすべての変数を JFrame に表示したいと思います。

ScriptJFrame

問題

私の問題は、TestPlan の前後に Beanshell スクリプトを起動する方法がわからないことです。

サンプルが send になる前に最初のスクリプトを開始して、すべてのプロパティ変数を 0 に初期化するだけです (それ以外の場合は、最後の TestPlan の値を保持します)。

そして、テスト計画が終了した後、すべての変数を含むフレームを表示する 2 つ目のフレームが必要です。(現在は JFrame ですが、このままではありません。)

テスト済みのソリューション

1) 私の最初のスクリプトでCounterは、テスト計画の最初に (JMeter > Config Element > Counter) を 0 に設定しましたIf Controller

コントローラの場合 (counter==0)

props.set("302","0");「302」がすべての 302 応答コードをカウントするプロパティである Pre-Processor Beanshell があります。

それは正しく機能しますが、これを行う適切な方法があるかどうか知りたいです。

2) 次に、2 番目のスクリプトで aswell を使用しようとし${JMeterThread.last_sample_ok}ましたIf Controllerが、期待どおりに動作しません。サンプルの後に配置すると、OK アサーションが開始され、テスト計画の最後に配置すると、呼び出されません。

すべてのスレッドが停止した後 (つまり、すべてのサンプルが終了した後)、beanshell スクリプトを 1 回実行するにはどうすればよいですか?

よろしくお願いします。すべてを理解していただければ幸いです。

4

1 に答える 1