性能测试-实例讲解VU、RPS、RT公式换算
概述
今天看到一篇文章講解VU、RPS、RT,中間有一個公式如下圖
?
?
點擊查看原文鏈接
?
并發數 = RPS * 響應時間?
于是我在本地做了幾次實驗,試圖驗證一下公式的準確性
?實驗網站 www.baidu.com
第一次實驗
100線程,一次迭代,啟動時間1s,線程組和聚合報告如圖所示
?
從結果可以看出,100并發/s,一次迭代,平均響應時間是68ms
如果根據上面公式來看的話
RPS = 并發數/響應時間 = 100/0.068 ,大約是1470/S
但是我們在線程組中可以看出,預置的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
?因為線程組只能設置整數,所以會和實驗三有一些誤差,不影響測試的準確性
?
?結尾語:從幾次實驗結果來看,在樣本充足的情況下,公式是沒有問題的。重點是做測試要時刻保持一顆質疑的心,不盲信任何權威?!
?
轉載于:https://www.cnblogs.com/Zfc-Cjk/p/11212221.html
總結
以上是生活随笔為你收集整理的性能测试-实例讲解VU、RPS、RT公式换算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息系统成本与质量管理
- 下一篇: 用计算机亩换算成平方,亩平米换算(平方米