其實要說明這個參數的含義非常簡單,可能你早知道他的含義,但我對這個參數一直有誤解,而且還一直以為是“真理”,原于一次面試,被問到了這個問題,所以引起我這個參數的重新認識。
先說說我錯誤的認識:
我一直把90%Line 理解為: 90%用戶的平均響應時間。
假如有10個數:
1、2、3、4、5、6、7、8、9、23
我會從這一組數中剔除掉10%的“另類”,也是剔除 23 ,因為如果把23計算進去求平均值,會有很大誤差。可能大部分(90%)用戶的響應感知那么差。
如果計算所有用戶的平均響應時間為:
(1+2+3+4+5+6+7+8+9+23)/10=6.8 以秒單位的話,是用戶平均響應時間為6.8秒。
去掉%10的另類(23)再來計算平均響應時間:
(1+2+3+4+5+6+7+8+9)/9=5 以秒為單位,那么90%用戶的平均響應時間是5秒。
那么,假如是下面的兩組數呢:
1、2、3、4、5、6、7、8、9、10
5、5、5、5、5、6、6、6、6、6
我求90%的平均響應時間,應該去哪個數?好像沒有太突出的“另類”數。
為什么會產生這個錯誤認識,因為看到不少資料(非官網)對“90%Line”解釋為:90% 用戶的響應時間
90% Line 參數正確的含義:
雖然,我的上面理解有一定的道理,顯然它是錯誤的。那看看JMeter 官網是怎么說的?
90% Line - 90% of the samples took no more than this time. The remaining samples at least as long as this.
“90% 的樣品沒有超過這個時間,剩余的樣品至少只要這個。”(拿google翻譯的)
沒太理解是什么意思,于是,點擊詳細解釋。
90% Line (90 th Percentile) is the value below which 90% of the samples fall. The remaining samples too at least as long as the value. This is a standard statistical measure. See, for example: Percentile entry at Wikipedia.
英語太差,還是沒理解到底啥意思,不過后提示我,用維基百科查一下什么是百分位數。
百分位數:
統計學術語,如果將一組數據從大到小排序,并計算相應的累計百分位,則某一百分位所對應數據的值稱為這一百分位的百分位數。可表示為:一組n個觀測值按數值大小排列如,處于p%位置的值稱第p百分位數。
中位數是第50百分位數。
第25百分位數又稱第一個四分位數(First Quartile),用Q1表示;第50百分位數又稱第二個四分位數(Second Quartile),用Q2表示;第75百分位數又稱第三個四分位數(Third Quartile),用Q3表示。若求得第p百分位數為小數,可完整為整數。
分位數是用于衡量數據的位置的量度,但它所衡量的,不一定是中心位置。百分位數提供了有關各數據項如何在小值與大值之間分布的信息。對于無大量重復的數據,第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。
再來解釋90%Line
一組數由小到大進行排列,找到他的第90%個數(假如是12),那么這個數組中有90%的數將小于等于12 。
用在性能測試的響應時間也將非常有意義,也是90%用戶響應時間不會超過12 秒。