0

将文件读入 Jmeter 后,如何替换文件(a.xml)中定义的变量?例如。a.xml 有内容。

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

使用 str_Input=${__FileToString(/a.xml)} 将整个文件读入字符串

在 Jmx 文件中,发出 http 请求以从 web 服务获取输出,如使用 Xpath Extractor 将 OrderNo 的值读入变量 vOrderNo。

现在,想在 str_Input.. 中使用变量 vOrderNo 的值吗?我如何能 ?

4

1 回答 1

1

您可以使用任何 jmeter 的采样器中的 beanshell (~java) 代码轻松实现这一点,它允许执行 beanshell 代码 - BeanShell Sampler例如。

以下作品:


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 回答