1

サンプラーにBSFポストプロセッサーを追加しました。
ポストプロセッサのスクリプトは次のとおりです。

var array = JSON.parse(prev.getResponseDataAsString());

array.forEach(function(object)
{
  OUT.println("patient_id: "+object.patientId);
  OUT.println("fname: "+object.fname);
  OUT.println("lname: "+object.lname);
});

ここで、object.patientId、object.fname、object.lnameの値を別のリクエストのパラメーターのパラメーターとして使用したいと思います。

例えば

Thread Group
- Sampler1
    BSF Post-Processor
- Sampler2

BSF Post ProcessorのSampler1のjavascriptの変数を、Sampler2のパラメーターとして使用したいと思います。それは可能ですか?

4

1 に答える 1

2

簡単に:BSF PostProcessorは、Jmeter変数/プロパティへの読み取り/書き込みアクセスを提供します。

vars-(JMeterVariables)-変数への読み取り/書き込みアクセスを提供します:vars.get(key); vars.put(key、val); vars.putObject( "OBJ1"、new Object()); vars.getObject( "OBJ2");

小道具-(JMeterProperties-クラスjava.util.Properties)-例:props.get( "START.HMS"); props.put( "PROP1"、 "1234");

最も単純なケースでは、次を使用できます

vars.put(patientId,object.patientId.toString());
vars.put(fName,object.fname.toString());
vars.put(lName,object.lname.toString());

BSF PostProcessorで変数を設定し、次のような値を取得します

vars.get("patientId")

また

${patientId}

ただし、foreachループ内のすべてのレコードを一度に抽出しているため、この方法を使用することはできません。

この場合、次のようなものを使用する必要があります。foreachループで抽出されたすべてのレコード値をcsvファイルに書き込み、CSVデータセット構成などを使用して、ループ内でレコードを1つずつ読み取り、サンプラー2:

While Controller
    CSV Data Set Config
    Sampler 2

...同様に、私が別のより良い方法を見つけた場合、私はそれについて知ってうれしいです。

于 2012-06-30T10:09:48.913 に答える