2014-03-04 72 views
0

我有一個測試套件在GUI中運行良好,並希望從命令行運行它。那裏沒問題,我知道該怎麼做。只寫JMeter總結報告平均,最小和最大文件?

在套件中我有一個彙總報告對象,它顯示錶中的最小,最大和平均響應時間。在摘要報告上有一個「配置」按鈕,允許我選擇可以寫入文件的字段來捕獲結果。然而,我想要的只是最小值,最大值和平均值,而這些似乎並不是我可以記錄的字段。

任何人都可以提出一種方式,我可以訪問這些值,也許從Beanshell或什麼?

我的套件將有多個線程組,我想爲每個線程組創建一個唯一的摘要報告文件,以便我可以在Jenkins中驅動一些圖。

在此先感謝您的幫助。

布拉德

+0

你試圖做的事情是不可能的。總結報告基本上是計算這些最小值,最大值和平均值,並將它們顯示在jmeter gui中,並且它需要一個包含所有日誌的.csv文件。 你可以做的是在每個線程組中放置一些簡單的數據寫入器。讓他們在非gui模式下運行時寫入日誌。之後,您可以使用摘要報告打開這些日誌,並且您可以將其用於每個線程組的不同報告 – Demoric

+0

謝謝,Johan,似乎很遺憾放棄計算結果並重做工作,但沒關係,因爲編寫包裝腳本在命令行上調用JMeter,然後解析日誌。感謝您的迴應。布拉德 – steadyonabix

回答

0

簡單的Beanshell腳本應該是最好的解決方案。我建議使用Beanshell Post Processors來將每個請求的時間記錄到一個相應地命名爲線程組名稱的文件中。

爲每個採樣在你的線程組中添加BeanShell的後置處理程序用下面的代碼:

long time = prev.getTime(); //get Sampler Execution Time 
String samplerName = prev.getSampleLabel(); //get Sampler Name 
String threadGroupName = ctx.getThreadGroup().getName(); // get Thread Group Name 
FileOutputStream out = new FileOutputStream(threadGroupName + ".csv", true); // Create output file called ${Thread Group}.csv 

//append information to the file 
StringBuilder sb = new StringBuilder(); 
sb.append(samplerName); 
sb.append(","); 
sb.append(time); 
sb.append(System.getProperty("line.separator")); 

out.write(sb.toString().getBytes("UTF-8")); 
out.flush(); 
out.close(); 

同樣你可以和任何你需要存儲。測試後應計算最小值,最大值和平均值。我猜詹金斯很聰明,可以繪製這個樣本,但也可能需要採樣時間戳。

參考文獻:

+0

這真的很不錯,德米特里,非常感謝。 :) – steadyonabix

相關問題