Jmeter值以字符串形式变量

时间:2012-07-26 02:02:51

标签: jmeter

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

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

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

在Jmx文件中,使用http请求从Web服务获取输出 使用Xpath Extractor,OrderNo的值被读入Variable vOrderNo。

现在,想在str_Input中使用变量vOrderNo的值..?我怎么样?

1 个答案:

答案 0 :(得分:1)

您可以使用来自任何jmeter的采样器的beanshell(~java)代码轻松实现此目的,该采样器允许执行beanhell代码 - 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(...)}将文件读入字符串 同样,您可以结合使用这两种方法。