jmeter學習指南之聚合報告
上一篇文章中我們講了Jmeter結果分析最常用的一個Listener檢視結果樹,
今天接著講另一個最常用的listener--聚合報告Aggregate Report。
我們先來看看聚合報告中的主要名稱的含意:
Label:每個請求的名稱
#Samples:各請求發出的數量
Average:平均響應時間(單位:毫秒)。預設是單個Request的平均響應時間,當使用了Transaction Controller時,也可以以Transaction為單位顯示平均響應時間
Median:中位數,具體後面講
90%Line:後面講
95%Line:後面講
99%Line:後面講
Min:最小響應時間
Max:最大響應時間
Error%:請求的錯誤率 = 錯誤請求的數量/請求的總數
Throughput:吞吐量。預設情況下表示每秒完成的請求數,一般認為它為TPS。(注意單位的變化,如上圖中,當TPS很低時,jmeter中預設會統計成每分鐘的值,這時我們需要換算成以秒為單位)
KB/sec:每秒從伺服器端接收到的資料量。
90%Line
在這裡我覺得有必要說一下對 90%Line 的理解:
很多人都理解為:90%使用者的平均響應時間。(我之前也一直這樣認為),但是後來才發現我錯了。
那看看JMeter 官網是怎麼說的?
90% Line - 90% of the samples took no more than this time. The remaining samples at least as long as this.
“ 90% 的請求耗時沒有超過這個時間,剩餘的請求耗時至少在這個時間之上。”也就是說90%的請求耗時都在這個時間之下。
這裡涉及到一個數學中的概念:百分位數
百分位數:
統計學術語,如果將一組資料從大到小排序,並計算相應的累計百分位,則某一百分位所對應資料的值就稱為這一百分位的百分位數。可表示為:一組n個觀測值按數值大小排列,處於p%位置的值稱第p百分位數。
百分位通常用第幾百分位來表示,如第五百分位,它表示在所有測量資料中,測量值的累計頻次達5%。以身高為例,身高分佈的第五百分位表示有5%的人的身高小於此測量值,95%的身高大於此測量值。
百分位數則是對應於百分位的實際數值。
百分位數是用於衡量資料的位置的量度,但它所衡量的,不一定是中心位置。百分位數提供了有關各資料項如何在最小值與最大值之間分佈的資訊。對於無大量重複的資料,第p百分位數將它分為兩個部分。大約有p%的資料項的值比第p百分位數小;而大約有(100-p)%的資料項的值比第p百分位數大。對第p百分位數,嚴格的定義如下:
第p百分位數是這樣一個值,它使得至少有p%的資料項小於或等於這個值,且至少有(100-p)%的資料項大於或等於這個值。
高等院校的入學考試成績經常以百分位數的形式報告。比如,假設某個考生在入學考試中的語文部分的原始分數為54分。相對於參加同一考試的其他學生來說,他的成績如何並不容易知道。但是如果原始分數54分恰好對應的是第70百分位數,我們就能知道大約70%的學生的考分比他低,而約30%的學生考分比他高。
再舉個假子:
有10個數:
1、2、3、4、5、6、7、8、9、10 按由小到大將其排列。
求它的第90%百分位,也就是第9個數剛好是9 ,那麼他的90%Line 就是9 。
另一組數:
2、2.1、2.5、3、3.4、3.4、4、4、4、4、5、5、5、5.9、 5.91、6.8、8、12、24、24.1 按由小到大將其排列。
求它的第90%百分位,也就是第18個數,是12 ,那麼他的90%Line 就是12。
那麼把百分位數用在效能測試中有什麼意義呢?
它可以使用我們的分析結果更準確!
因為在評估一次測試的結果時,僅僅有平均響應時間是不夠的。假如有一次測試,總共有100個請求被響應,其中最小響應時間為0.02秒,最大響應時間為110秒,平均事務響應時間為4.7秒,你會不會想到最小和最大響應時間如此大的偏差?是否會導致平均值本身並不可信?
如果我們把每個請求的響應時間用excel統計出來,會發現那個最大值的出現機率只不過是千分之一甚至萬分之一,剩下99%的使用者請求的響應時間都是在效能需求所定義的範圍之內的;所以為了更準確的衡量整體請求的耗時情況,除了平均響應時間之外,還要有90%Line、95%Line、99%Line來輔助統計。
總結一下,聚合報告中的百分位數的含意:
Median:中位數,50%使用者的響應時間在小於該值,注意它與average平均響應時間的區別;
90%Line:90%使用者的響應時間小於該值
95%Line:95%使用者的響應時間小於該值
99%Line:99%使用者的響應時間小於該值
現在你明白了嗎?