2016-01-18 46 views
2

我需要使用匯總報告監聽器並對其進行自定義,以便我可以添加附加列以顯示輸出的每個記錄的延遲時間。它也可以作爲自定義插件來實現。我想要的是一個收聽總結報告加上延時欄的所有欄目的聽衆。Jmeter:需要自定義彙總報告監聽器

回答

1

如果你真的要「走總結報告監聽器和自定義」,那麼你將不得不艱難地:

  1. 首先,建立一個Java項目。例如,如果使用Maven,這是您的典型設置with one additional dependency

  2. 不幸的是,SummaryReport的實現方式,它不允許任何數據列的靈活性。因此,您必須複製SummaryReport並將您需要的內容添加到您的版本中。或者,根據AbstractVisualizer(在這種情況下使用SummaryReport作爲示例,瞭解如何執行此操作),爲您的那個延遲值實施您自己的單獨「可視化器」。

  3. 然後你建立你的插件到罐子,把它扔到jmeter_dir/lib/ext,及其所有缺少的依賴關係落入jmeter_dir/lib(如果使用Maven構建,它更容易創建zip that contains your jar and all dependencies

,如果一切很好,你會得到你想要的東西

但是,如果可以接受不使用總結報告的延遲,更簡單的解決方案是將一個可編程監聽器(即BSF listenerJSR223 Listener)添加到您的測試計劃中它可以訪問sampleResult對象。所以你可以開發一個小功能,將延遲保存到文件中。這樣的事情(使用BSF以「Java」的選擇語言):

String filename = "/tmp/latency_report"; 
FileOutputStream f = new FileOutputStream(filename, true); 
PrintStream p = new PrintStream(f); 
this.interpreter.setOut(p); 
print(prev.getEndTime() + "," + prev.getLatency()); 
f.close(); 

注意,這個例子顯示了最原始的執行(即它打開每一次文件,多線程並不是真正的安全,沒有錯誤處理)。

+0

這可能是一個有點有用的提示,但我正在尋找的是一種創建自定義偵聽器插件的方式,我可以在Summary Report + Latency中獲取所有數據。 – TESTasy