将Jmeter值转换为字符串中的变量
在将文件(a.xml)读入Jmeter后,如何替换文件中定义的变量? xml有一个内容将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)代码轻松实现这一点,该
使用以下命令将整个文件读入字符串:
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代码片段更强大、更灵活,但这只是偏好的问题。