如何在将文件读入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的值..?我怎么样?
答案 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(...)}将文件读入字符串 同样,您可以结合使用这两种方法。