0

ファイルがJmeterに読み込まれた後、ファイル(a.xml)で定義された変数を置き換えるにはどうすればよいですか?例えば。a.xmlにはコンテンツがあります。

<Shipment Action="MODIFY" OrderNo="${vOrderNo}" >

str_Input = $ {__ FileToString(/a.xml)}を使用して、ファイル全体が文字列に読み込まれます。

Jmxファイルでは、Xpath Extractorを使用してOrderNoの値が変数vOrderNoに読み込まれるため、Webサービスから出力を取得するためにhttpリクエストが行われます。

ここで、str_Inputで変数vOrderNoの値を使用したいと思います。どうすればいいですか?

4

1 に答える 1

1

これは、beanshellコードの実行を可能にする任意のjmeterのサンプラー( BeanShellサンプラーなど)のbeanshell(〜java)コードを使用して簡単に実現できます。

次の作品:


import java.io.*;

try
{
    // reading file into buffer
    StringBuilder data = new StringBuilder();
    BufferedReader in = new BufferedReader(new FileReader("d:\\test.xml"));

    char[] buf = new char[1024];
    int numRead = 0;
    while ((numRead = in.read(buf)) != -1) {
    data.append(buf, 0, numRead);
    }
    in.close();

    // replacing stub with actual value
    String vOrderNo = vars.get("vOrderNo");
    String temp = data.toString().replaceAll("\\$\\{vOrderNo\\}", vOrderNo);

    // writing back into file
    Writer out = new BufferedWriter(new FileWriter("d:\\test.xml"));
    out.write(temp);
    out.close();
}
catch (Exception ex) {
    IsSuccess = false;
    log.error(ex.getMessage());
    System.err.println(ex.getMessage());
}
catch (Throwable thex) {
    System.err.println(thex.getMessage());
}

このコードでは、$ {__ FileToString(...)}を介してファイルを文字列に読み込む必要はありません。
また、両方の方法を組み合わせることができます。

于 2012-07-26T15:29:18.083 に答える