这是我的beanshell代码,用于创建文件并向其附加一行:
FileName = vars.get("fileName");
f = new FileOutputStream(FileName,true);
p = new PrintStream(f);
this.interpreter.setOut(p);
print("Test Set: " + FileName);
f.close();
我从前一个采样器中的正则表达式提取器获取fileName。我检查了调试后处理器并确认已正确设置。但是我在采样器结果中收到此错误:
Response code: 500
Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``FileName = vars.get("fileName"); f = new FileOutputStream(FileNam . . . '' : Object constructor
答案 0 :(得分:2)
问题是:如果FileName
为null,FileOutputStream
的构造函数将抛出异常,而BeanShell在显示基础异常方面不是很好。所以你需要的是处理文件名为null的情况:
String fileName = vars.get("fileName");
if( fileName == null )
{
fileName = "mydefaultname"; // assign some default name
}
f = new FileOutputStream(fileName, true);
p = new PrintStream(f);
this.interpreter.setOut(p);
print("Test Set: " + fileName);
f.close();
如果您不想拥有某个默认名称,也可以在此时退出脚本:
if( fileName == null )
{
return;
}