1. 程式人生 > >**jMeter 測試結果分析【轉】**

**jMeter 測試結果分析【轉】**

當我們拿到了jmeter測試結果之後,我們應該如何去看待它們呢?它們又是怎麼來的呢? 一、Listener的使用 用過LoadRunner的人應該都知道,LoadRunner會為我們提供一大堆圖示和曲線。但是在Jmeter裡,我們只能找到幾個可憐的Listener來方便我們檢視測試結果。但是,對於初學者來說,一些簡單的結果分析工具可以使我們更容易理解效能測試結果的分析原理。所以,千萬別小看這幾個簡單的Listener啊。

A.Aggregate Report 聚合報告

我們可以看到,通過這份報告我們就可以得到通常意義上效能測試所最關心的幾個結果了。 Samples – 本次場景中一共完成了多少個Transaction Average – 平均響應時間 Median – 統計意義上面的響應時間的中值 90% Line – 所有transaction中90%的transaction的響應時間都小於xx Min – 最小響應時間 Max – 最大響應時間 PS: 以上時間的單位均為ms Error – 出錯率 Troughput – 吞吐量,單位:transaction/sec KB/sec – 以流量做衡量的吞吐量 B.View Results Tree 以樹狀列表檢視結果

通過這個Listener,我們可以看到很詳細的每個transaction它所返回的結果,其中紅色是指出錯的transaction,綠色則為通過的。 如果你測試的場景會有很多的transaction完成,建議在這個Listener中僅記錄出錯的transaction就可以了。要做到這樣,你只需要將Log/Display:中的Errors勾中就可以了。

二、.jtl檔案的分析 在效能測試過程中,我們往往需要將測試結果儲存在一個檔案當中,這樣既可以儲存測試結果,也可以為日後的效能測試報告提供更多的素材。 Jmeter中,結果都存放在.jtl檔案。這個.jtl檔案可以提供多種格式的編寫,而一般我們都是將其以csv檔案格式記錄,這樣做是因為csv檔案格式看起來比較方便,更重要的是這樣做可以為二次分析提供很多便利。 我這裡所說的二次分析是指除了使用Listener之外,我們還可以對.jtl檔案進行再次分析。 a.設定jtl檔案格式

我們從jmeter官方網站中下載下來的Jmeter解壓後是可以直接使用的。但是,使用預設配置生成的jtl檔案內容並不能滿足我們的需要。於是我們必須進行必要的設定。在2.2版本中,如果要修改jtl設定必須要到jmeter.properties檔案中設定;但是在2.3版本中,我們只需要在介面上設定就可以了。你只需要選擇某個Listener,點選頁面中的configure按鈕。此時,一個設定介面就會彈出來,建議多勾選如下項:Save Field Name,Save Assertion Failure Message。

b.jtl檔案中的各項 經過了以上設定,此時儲存下來的jtl檔案會有如下項: timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,Latency 請求發出的絕對時間,響應時間,請求的標籤,返回碼,返回訊息,請求所屬的執行緒,資料型別,是否成功,失敗資訊,位元組,響應時間 其中聚合報告中的,吞吐量=完成的transaction數/完成這些transaction數所需要的時間;平均響應時間=所有響應時間的總和/完成的transaction數;失敗率=失敗的個數/transaction數 溫馨提示:在jmeter2.2和2.3版本中,都存在的一個問題是當我們重新開啟jmeter,使用某個Listener來檢視jtl檔案時,jmeter是會報錯的。因此當你使用命令列方式完成了一個場景的測試後,你得到的只是一堆儲存在jtl檔案中的原始資料。所以知道聚合報告中的各項的來源是可以方便大家擺脫測試工具來進行結果的分析。 總的來說,對於jmeter的結果分析,主要就是對jtl檔案中原始資料的整理,我是使用一些小指令碼進行相關的分析的,不知道你打算怎麼做呢? 反正實踐後,你總能找到一條屬於自己的資料分析之路。 測試結果的分析說明 說明: Label:每個 JMeter 的 element (例如 HTTP Request )都有一個 Name 屬性,這裡顯示的就是 Name 屬性的值 #Samples:表示你這次測試中一共發出了多少個請求,我的測試計劃模擬 10 個使用者,每個使用者迭代 10 次,因此這裡顯示 100 Average:平均響應時間 —— 預設情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以 Transaction 為單位顯示平均響應時間 Median:中位數,也就是 50 %使用者的響應時間 90% Line: 90 %使用者的響應時間 Min: 最小響應時間 Max: 最大響應時間 Error%:本次測試中出現錯誤的請求的數量 / 請求的總數 [NextPage] Throughput:吞吐量 —— 預設情況下表示每秒完成的請求數( Request per Second ),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數 KB/Sec:每秒從伺服器端接收到的資料量,相當於 LoadRunner 中的 Throughput/Sec 我分別模擬10、25、50、75和100個使用者併發訪問該頁面,根據報告所得測試結果作出如下統計。注:時間單位是ms

使用者數 #Samples Average Median 90%Line Min Max Error% Throughput KB/Sec 10 642 672 688 125 125 719 00.0 14.8/sec 221.15 25 250 1620 1687 1750 250 1781 00.0 14.5/sec 217.14 50 500 3319 3438 3578 281 3657 00.0 14.2/sec 212.02 75 750 4887 5109 5584 328 7094 00.0 14.5/sec 216.67 100 1000 6244 6485 6672 250 6844 00.0 15.1/sec 225.43 一般情況下,當用戶能夠在2秒以內得到響應時,會感覺系統的響應很快;當用戶在2-5秒之間得到響應時,會感覺系統的響應速度還可以;當用戶在5-10秒以內得到響應時,會感覺系統的響應速度很慢,但是還可以接受;而當用戶在超過10秒後仍然無法得到響應時,會感覺系統糟透了,或者認為系統已經失去響應,而選擇離開這個Web站點,或者發起第二次請求。故該系統的使用者資訊查詢資訊頁面的在10到25人併發訪問時,系統響應速度很快,25人到50人併發訪問時速度還可以,50人到100人併發訪問就比較慢了。