2016-06-28 15 views
1

我一直在用jMeter學習一些新東西,一直在毆打自己。我正在使用2.13。我昨天玩的一件事就是「保存對文件的回覆」監聽器。我已經把我想要在「文件名前綴」字段中創建的文件名的路徑,它似乎運作良好。jMeter中的「保存對文件的響應」中的可變字段 -

使用「變量名稱」字段更麻煩。

enter image description here

Apache的文檔說該字段是:

一個變量的名稱在其中保存所生成的文件名(因此它可以 可以在試驗計劃後使用)

太棒了!我給這個變量一個名字,並嘗試訪問BeanShell PostProcessor腳本中的值。

String startCode = vars.get("START_CODE"); 
String filename = vars.get("FILENAME"); 
String transNum = vars.get("TRANSACTION_NUM"); 
System.out.println("startCode=" + startCode + ", transNum=" + transNum + ", filename=" + filename); 

我總是得到空。昨天我已經在我的很多日子裏黑了。我試過在「用戶定義的變量」中預先聲明變量。這至少會給我一個空字符串或我放在UDF Value列中的任何值。

得說我在BeanShell上也是綠色的,除了我的訪問其他變量獲取正確的值,所以這有點令人困惑。

+0

我在使用'System.out.println'時遇到了問題。你嘗試過'log.info'嗎?它會出現在右上角打開的日誌中。 – RowlandB

+0

不,System.out.println()適用於我(輸出進入jmeter.bat從其開始的控制檯窗口)。無論如何,我試過你的建議和log.info()給了我相同的結果 - null。 –

回答

2

那麼問題是什麼?我懷疑你不能在Save responses to a file監聽器中使用變量名,它的年齡並沒有改變,並且習慣於很好地工作。如果您需要關於使用監聽器的任何額外文檔,您可以查看Performance testing: Upload and Download Scenarios with Apache JMeter文章。

如果你有問題訪問,在PostProcessor中在監聽器產生FILENAME變量值 - 這是一種爲聽衆發生後處理器爲特定的後處理器(尤其是BeanShell的和類似的)預期可修改的結果。因此,爲了能夠從BeanShell的訪問變量FileName:

  1. 使用Beanshell Listener代替的BeanShell PostProcessor中
  2. 確保BeanShell的監聽器低於保存響應文件監聽器,否則你會碰到相同的情況
+0

好的,使用Beanshell Listener而不是Beanshell PostProcessor允許我從「將響應保存到文件」中檢索FILENAME變量 –