尝试使用StringFromFile函数从数据文件中读取新行。 下面是我的代码和数据文件。
int numOfTransactions = Integer.parseInt(vars.get("POS_TRANSACTION_NUM"));
for(int i=0; i<numOfTransactions;i++){
addOneMessage(${_StringFromFile(data//external_50k.txt)});
log.info("${_StringFromFile(data//external_50k.txt,,,)}");
}
external_50k.txt:
10000
10001
10002
10003
10004
10005
..
50000
numOfTransactions = 3
。
因此,循环将循环3次,我想读取并在addOneMessage函数中传递10000,10001和10002,下次读取10004,10005和10006 ......直到50000行的文件用完为止。
但是,目前StringFromFile不会读取新行。 10000次传递给addOneMessage 3次
所以,就像下面这样:
10000
10000
10000
10001
10001
10002
10003
答案 0 :(得分:2)
一般来说,将函数调用内联到脚本中并不是一个很好的做法,对于groovy语言,它会阻止编译并导致性能下降。也许有一种方法可以使用While Controller来完成您需要的工作,但图片并不清晰,所以我建议修改您的方法:
鉴于你已经使用了一些代码,我建议修改如下:
import org.apache.commons.io.FileUtils;
int position;
if (vars.getObject("position") != null) {
position = vars.getObject("position");
}
else {
position = 0;
}
int numOfTransactions = Integer.parseInt(vars.get("POS_TRANSACTION_NUM"));
for (int i = 0; i < numOfTransactions; i++) {
log.info(FileUtils.readLines(new File("data/external_50k.txt")).get(position));
position++;
}
vars.putObject("position", position);
参考文献:
答案 1 :(得分:1)