2016-08-17 70 views
0

這是我的BeanShell代碼來創建一個文件和一行追加到它創建文件時:的JMeter錯誤嘗試使用BeanShell的

FileName = vars.get("fileName"); 

f = new FileOutputStream(FileName,true); 
p = new PrintStream(f); 
this.interpreter.setOut(p); 


print("Test Set: " + FileName); 

f.close(); 

我在以前的採樣正則表達式提取得到的文件名。我檢查了調試後處理器,並確認這是設置正確的。不過,我在採樣結果得到這個錯誤:

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 
+1

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

如果你不希望有一些默認的名稱,也可以在此時退出腳本你不忘記使用像「字符串FileName = vars.get ...」 –

+0

我曾嘗試聲明它爲一個字符串,如你所說,但這並沒有解決問題 – user3871995

+0

你有正確的f和p的聲明? –

回答

2

的問題是:如果FileName爲null,對於FileOutputStream構造函數將拋出一個異常,而BeanShell中不顯示潛在異常巨大。所以,你需要的是文件名是空處理情況:

if(fileName == null) 
{ 
    return; 
} 
+0

所以我想這一點,我也得到了同樣的錯誤: 「響應代碼:500 響應消息:org.apache.jorphan.util.JMeterException:錯誤調用BSH方法:EVAL \t源文件:內嵌的評價:'' FileName = vars.get(「fileName」); if(FileName == null)。 。 。 '':對象構造函數' – user3871995

+0

如果你只是複製/粘貼我建議的整個腳本,它是否工作? (因爲我認爲第一行也是一個問題,正如前面的評論所建議的)。 –