性能測試-實例講解VU、RPS、RT公式換算

概述

今天看到一篇文章講解VU、RPS、RT,中間有一個公式以下圖併發

 

 

點擊查看原文連接測試

 

併發數 = RPS * 響應時間 網站

因而我在本地作了幾回實驗,試圖驗證一下公式的準確性spa

 實驗網站 www.baidu.com線程

第一次實驗

100線程,一次迭代,啓動時間1s,線程組和聚合報告如圖所示3d

 

從結果能夠看出,100併發/s,一次迭代,平均響應時間是68msblog

若是根據上面公式來看的話token

RPS = 併發數/響應時間 = 100/0.068 ,大約是1470/Sget

可是咱們在線程組中能夠看出,預置的RPS是 100/S定時器

差距有點大哦~~~想一想爲何呢?

 

第二次實驗

100線程,持續迭代,1s內啓動線程,持續運行10s。線程組和聚合報告如圖所示。

 

從聚合報告能夠看出來,平均TPS= 1303。那麼咱們可不能夠就認定這個TPS=RPS呢?

簡單計算一下就知道了。

圖中能夠看出咱們的單次響應時間是72ms,那麼1秒內大約能迭代14次。100個線程下,一秒內大約能發送1400個請求。

所以咱們的RPS大約是1400/S

這樣就能看出來,一秒內發送1400次請求,可是1s內只有1300個請求能響應完畢

咱們再反向驗證一下併發數

併發數 = RPS*響應時間,1400* 0.072 等於100.8,和線程組裏面設置的併發數幾乎相同。

若是咱們用Throughput=RPS去反向驗證

併發數 = RPS*響應時間,1303* 0.072 等於93和線程組裏面設置的併發數就有一些差距了。

這兩次實驗得出的結論:在持續迭代下,因爲樣本充足,因此公式成立。可是RPS!= TPS

 

第三次實驗

此次咱們直接加上RPS定時器,經過精準的RPS來驗證公式

咱們讓200RPS保持1分鐘,查看聚合報告

 

首先咱們就能看出,在200RPS下,平均TPS只有172!

其次,平均併發數 = 200*0.047 = 9.4   意味着我只須要9個線程,就能夠在一秒內釋放200RPS的壓力

能夠算出每一個線程每秒的請求數是 200/9.4 =21,也就是一個線程一秒內最大迭代21次

反推每一個請求的響應時間 大約 是 1000/21 大約是 47ms 

先後驗證的結果都相符!

 

第四次實驗

這一次咱們直接在線程組中設置剛剛20RPS下得出的平均併發數值 9,反向推斷出RPS的準確性

計算一下RPS = 9 /0.043 約等於209

 由於線程組只能設置整數,因此會和實驗三有一些偏差,不影響測試的準確性

 

 結尾語:從幾回實驗結果來看,在樣本充足的狀況下,公式是沒有問題的。重點是作測試要時刻保持一顆質疑的心,不盲信任何權威 !

相關文章
相關標籤/搜索