Jmeter写入文件-Beanshell脚本问题

时间:2016-05-05 19:25:35

标签: jmeter

我正在将我的变量写入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();

我该怎么做才能修复它们?

2 个答案:

答案 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();