2016-12-01 112 views
2

我很困惑transaction per second的計算。 假設我JMeter的日誌文件看起來像這樣:與交易每秒計算混淆

timeStamp;elapsed;label;responseCode;threadName;success;bytes;grpThreads;allThreads;Latency;SampleCount;ErrorCount;Hostname;IdleTime 
10:24:10;302;10.107.25.219;200;Groupe d'unités 1-1;true;266;1;1;302;1;0;MYPC;0 
10:24:11;182;10.107.25.219;200;Groupe d'unités 1-1;true;266;1;1;181;1;0;MYPC;0 
10:24:12;153;10.107.25.219;200;Groupe d'unités 1-1;true;266;1;1;153;1;0;MYPC;0 
10:24:13;198;10.107.25.219;200;Groupe d'unités 1-1;true;266;1;1;198;1;0;MYPC;0 

如何計算每秒交易?

它是一個常數?

回答

1

您可以使用JMeter插件Transactions Per Second監聽器。

  1. 下載插件jar,保存在文件夾中的JMeter和RESTART。或者使用JMeter Plugin Manager從工具本身下載jar。
  2. Listener菜單中的[email protected] Transactions Per Second圖添加到您的測試計劃中。
  3. 使用Browse按鈕加載結果文件。
  4. 您只能通過禁用與​​HTTP採樣器相關的所有複選框並從Rows選項卡啓用事務控制器複選框來僅過濾事務。

如果你想構建定製記者:

首個解決方案:

你可以依靠datatype列中的結果,以區分sampler,並在一個transaction controller結果文件。

下面是示例結果文件與一個採樣器和一個交易控制器:

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,grpThreads,allThreads,Latency,IdleTime 
1480588968698,3,HTTP Request,200,OK,Thread Group 1-1,text,true,,434,1,1,2,0 
1480588968697,3,Transaction Controller,200,"Number of samples in transaction : 1, number of failing samples : 0",Thread Group 1-1,,true,,434,1,1,2,2 
1480588968702,0,Debug Sampler,200,OK,Thread Group 1-1,text,true,,421,1,1,0,0 

可以檢查數據類型列是emptytransaction controller,其中作爲sampler,它是text

如果您正在編寫自己的自定義報告生成器,則可以在決策時使用datatype列。

二解決方案:

遵循命名標準,可以達到更加專業的方式同樣的事情。

  1. 名稱的所有采樣開始 「Sampler_」
  2. 名稱你所有的開始 「TRANSACTION_」

就是這樣採樣。在你的代碼中,你可以通過控制決定哪個值爲label,即sampler/transaction controller

+0

感謝您的回覆,但我不想使用JMeter插件管理器來確定每秒事務。我的jmeter測試的結果存儲在influxdb中,我想知道如何查詢,或者我必須使用什麼公式來進行每秒事務處理 –

+0

好吧,我沒有任何解決方案可以解決您的問題。您可以嘗試使用influxdb作爲數據源和平面圖的格拉芬服務器。您可以繪製來自有限參數的圖表,這些鏈接在http://jmeter.apache.org/usermanual/realtime-results.html鏈接中提到。因此,將您的influxdb作爲數據源添加到grafana服務器中,然後選擇參數以繪製圖表... –

+0

如果您不想使用圖形,那麼您可以通過從8083/8086端口訪問它來訪問ibfluxdb數據(不是肯定),那裏你可以運行選擇查詢,並保持條件爲datatype =「」和組請求每秒。 –