我编写了一个简单的beanshell脚本来获取我使用正则表达式选择的几个值,并将它们写入字符串中的CSV文件中。
nic = vars.get("NicNo01");
name = vars.get("Name01");
loanId = vars.get("Loan_Id");
f = new FileOutputStream("C:/Users/User/Desktop/scripts/Final/result.csv", true);
p = new PrintStream(f);
this.interpreter.setOut(p);
print(nic + "," + name + "," + loanId);
f.close();
数据是在一个循环中写入的,只有很少的空值,最后的字符串是我需要的正确字符串。我没有使用任何循环控制器或线程组不在循环上。这是CSV文件数据的一部分。
null,null,null
null,null,null
588583492V,A B C Fernando,null
588583492V,A B C Fernando,null
588583492V,A B C Fernando,null
588583492V,A B C Fernando,127180
为什么会出现像数据导出这样的循环?我怎样才能得到正确的最终字符串?
答案 0 :(得分:1)
仅当所有变量 not null 时才写它:
nic = vars.get("NicNo01");
name = vars.get("Name01");
loanId = vars.get("Loan_Id");
if(nic == null || name == null || loanId == null)
return;
// otherwise write to file
答案 1 :(得分:0)
如果线程数很多,由于性能问题,Beanshell可能无法正确存储数据。尝试切换到JSR223 Post Processor and use Groovy as scripting language
另一种选择可能是使用sample_variables属性。将以下行添加到 user.properties 文件(位于JMeter安装的/ bin文件夹下)
sample_variables=NicNo01,Name01,Loan_Id
并且在JMeter上重启变量值将添加到JMeter的.jtl结果文件中。