我试图在JMeter中创建一个BeanShell脚本来创建XML消息并将其保存为变量(然后让SOAP采样器发送消息当然,但这不是真正的重点)。在脚本中,我有一个随机创建几行的循环,重点是脚本从CSV文件中读取新行的每个循环。循环工作正常,但出于某种原因,CSVread next
似乎不起作用,所以每次它只使用CSV文件中的相同行。
以下是我使用的代码:
try{
//Use a random variable to loop for a random amount of times
randomnr = vars.get("randomvariable");
int randomint = Integer.parseInt(randomnr);
int FiNr = 123456789;
//I'm using a stringbuilder to create the xml message
StringBuilder multi = new StringBuilder();
for (int i=1; i<randomint; i++){
multi.append("SomeXML");
FiNr = ${__CSVRead(data.csv,0)}; //get a line from the csv
multi.append(""+FiNr);
multi.append("SomeMoreXML");
${__CSVRead(data.csv,next)}; //Go to the next line in the csv - doesn't seem to be working
}
vars.put("xmlmessage",multi.toString()); //put all of it in a variable
}
catch(Exception ex){
log.warn("Something bad happened", ex);
throw ex;
}
除了没有进入循环中的下一行之外,一切正常。有什么想法吗?
答案 0 :(得分:0)
不幸的是,_csvread()
函数不适用于Beanshell采样器内的循环。尝试实现jmeter
循环控制器并在其下添加__CSVread()
函数。