Jmeter測試結果分析(下)
前文再續,續接上一回。上一篇講了如何利用Assertion將測試結果進行初步的篩選。那麼,當我們拿到了測試結果之後,我們應該如何去看待它們呢?它們又是怎麼來的呢?
一、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文件中原始數據的整理,我是使用一些小腳本進行相關的分析的,不知道你打算怎麼做呢?
反正實踐後,你總能找到一條屬於自己的數據分析之路。