3

テスト プロジェクトで既存のメソッドを呼び出せるように、JMeter テストにインポートしたい Java テスト プロジェクトがあります。私はいくつかの調査を行い、Java プロジェクトの jar を作成し、その jar を JMETER_HOME/lib/ext フォルダーにコピーし、BeanShell プロセッサを使用して外部メソッドを呼び出すことができることを知りました。

既存のテスト プロジェクトを使用して、そのメソッドを呼び出して JSON ペイロードを生成しようとしています。BeanShell PreProcessor を追加し、次のようにしました。

import com.qa.base.services.user.User;

User user = User.generateSimpleUser();
        user.setField("username", "testUsername");
        user.setField("password", "testPassword");

vars.put("requestJsonPayload", user.toString());

これはうまくいかないようで、エラーが発生します:

エラー - jmeter.util.BeanShellInterpreter: bsh メソッドの呼び出しエラー: eval ソース ファイル: インライン評価: ``import com.qa.base.services.user.User'': 型付き変数宣言: メソッド呼び出し User.generateSimpleUser()

私がやろうとしていることをどのように達成できるか知っている人はいますか? 提案、コメント、チュートリアルへのリンク、例は役に立ちます。前もって感謝します!

より詳しい情報:

また、リクエストの 1 つのレスポンス ペイロードを取得し、ペイロード内のいくつかのフィールドを削除し、別のリクエストのリクエスト ペイロードとして送信できる新しいペイロードを構築する BeanShell PostProcessor も使用しています。BeanShell PostProcessor は問題なく動作します。これには JSONObject を使用しました。コードは次のようになります。

import org.json.JSONObject;

String jsonString = prev.getResponseDataAsString();
print(jsonString);
JSONObject responseJSON = new JSONObject(jsonString);
responseJSON.remove("createTime");
responseJSON.remove("id");

vars.put("updatedJsonPayload",responseJSON.toString());
4

1 に答える 1