Jmeter beanshell脚本中csv文件的下一行

时间:2016-07-11 16:01:21

标签: jmeter beanshell

我试图在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;
}

除了没有进入循环中的下一行之外,一切正常。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,_csvread()函数不适用于Beanshell采样器内的循环。尝试实现jmeter循环控制器并在其下添加__CSVread()函数。