我正在将我的变量写入CSV文件,但我面对这两个问题 - 1.即使脚本完成,CSV文件也会显示它正在使用且只读模式 2.我希望使用制表符分隔值,但下面的\ t不起作用
FileWriter fstream = new FileWriter("C:\\path to csv\\test.csv",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("num1"));
out.write(System.getProperty("\t"));
out.write(vars.get("num2"));
out.write(System.getProperty("line.separator"));
out.close();
fstream.close();
我该怎么做才能修复它们?
答案 0 :(得分:0)
替换此行:
out.write(System.getProperty("\t"));
与
out.write("\t");
这会导致您的脚本在该行上失败,因此" num2"变量未被写入且流未被关闭。
下次遇到Beanshell脚本问题时,请查看 jmeter.log 文件中的任何错误。如果你想要一个人类可读的堆栈跟踪 - 用try / catch块包围你的代码,如:
try {
//your code here
}
catch (Throwable ex) {
log.error("Something wrong", ex);
throw ex;
}
有关使用Beanshell脚本和对其进行故障排除的详细信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component文章。
顺便说一句,您可以使用Sample Variables属性将任何JMeter变量写入.jtl结果文件,以便启用它只需将下一行添加到 user.properties 文件(生命)在JMeter" bin"文件夹中)
sample_variables=num1,num2
并将值添加到.jtl文件中。
答案 1 :(得分:0)
或者,您可以尝试编写higher priority中提到的内容。也许有帮助。
import org.apache.jmeter.services.FileServer;
// Get the variable(s) from the JMeter script
tempVar = vars.get("ExampleVar");
// Static elements or calculations
part1 = "Car Speed is: ";
part2 = " km/h";
// Open File(s)
f = new FileOutputStream(FileServer.getFileServer().getBaseDir()+"\\carSpeed.csv", true);
p = new PrintStream(f);
// Write data to file
p.println( part1 + tempVar + part2 );
// Close File(s)
p.close();f.close();