将Jmeter值转换为字符串中的变量

将Jmeter值转换为字符串中的变量,jmeter,Jmeter,在将文件(a.xml)读入Jmeter后,如何替换文件中定义的变量? xml有一个内容 使用以下命令将整个文件读入字符串: str\u Input=${\uu FileToString(/a.xml)} 在Jmx文件中,发出http请求以从Web服务获取输出,如下所示: 使用Xpath提取器将OrderNo的值读入变量vOrderNo 现在,想在str_输入中使用变量vOrderNo的值吗?我该怎么做?您可以使用任何jmeter的采样器中的beanshell(~java)代码轻松实现这一点,该

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

使用以下命令将整个文件读入字符串: str\u Input=${\uu FileToString(/a.xml)}

在Jmx文件中,发出http请求以从Web服务获取输出,如下所示: 使用Xpath提取器将OrderNo的值读入变量vOrderNo


现在,想在str_输入中使用变量vOrderNo的值吗?我该怎么做?

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

以下工作:


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());
}
此代码不需要通过${{uu FileToString(…)}将文件读入字符串。

此外,您还可以将这两种方法结合使用。

谢谢您的帮助。。。但我想知道我是否可以使用Jmeter的内置函数而不必编写代码。。。我做了一些研究,我认为这可能会奏效。。但我不知道该怎么做。。有什么想法吗${{uuu eval(${uu FileToString(../ReferenceImplementation\u 1/Input\u ChangeOrder.xml)})或{uu evalVar或{uu V???另外,避免在这里编写java代码的另一个原因是。。因为,XML在运行时可能定义了多个变量。。因此,我将无法编写java代码来替换特定的变量。我认为这种方法应该适用于我的案例tooo感谢Alies于2011年11月在该线程中的回复对我有效${{{uu eval(${{uu FileToString(a.xml)}}如果是这样的话,这很好。我只是觉得使用beanshell代码片段更强大、更灵活,但这只是偏好的问题。