性能測試分析之性能指標確認


在實際工作中,我們會接受到各種各樣的性能測試任務,但是在這些性能測試任務中,很大的可能接口的性能指標沒有辦法很明確的給到測試人員,在這個時候怎么處理呢?

最理想的情況是:開發或者是項目經理/產品已經提前確定好了性能指標,然后將這個指標很明確的告訴你,這個接口就是要達到多少的tps

 

 

 理想很豐滿,現實很骨感,根據實際的工作經驗看,這種根本不會有(也許有,但是我還沒碰見過)

所以作為性能測試人員,我們很有必要去針對一些數據進行分析,在實際測試之前就先明確一個相對科學的指標,這樣測試出來的結果才更加有價值

 

好,下面很重要了

 

一般來說:我們對壓測的項目可以分為兩種,一種的老項目,一種是新項目

那么何為老項目?何為新項目,這個應該對測試人員來說不難,所謂老項目也就是指已經上線運行了一段時間的項目,新項目也就是還沒有上線過的項目

一、針對老項目來分析

既然已經上線運行過一段時間,那么我們可以通過以下手段對歷史數據進行分析

1、業務監控系統

在比較成熟點的公司,一般都會有各種各樣的業務監控系統,定期監控各業務模塊核心接口的調用量,平均耗時等,這個可以直接問運維要,或者和你有權限也可以直接上監控平台中看

數據:過去一周或者一個月內沒調用接口量最該的一天,然后在找到接口量調用最好的時間點(分鍾),比如在12:00的調用量為10000,那么我們再換算成S級別:10000/60=167,也就是說我們可以確定這個接口滿足tps為167即可

2、日志

有的比較小一點的公司,可能壓根就沒有建立業務監控系統,這樣就沒有直接的數據了,但是辦法也是有的,比如:日志,那么那么多的日志,我們找什么日志呢?

比如中間件的訪問日志或者tomcat的訪問日志,看情況自己尋找,這里舉例說明下tomcat的訪問日志吧,

tomcat的訪問日志我們一般可以通過localhost_access_log.*.txt這個文件進行查看,里面記錄了每一個接口的詳細記錄,請求的訪問時間,URL,請求的方式,響應碼,響應時間等,但是里面那么多記錄,我們怎么處理呢? 

有了這些日志信息就很好辦了,如果你自己會Python或者java,那就自己寫一個腳本搞定,如果自己不會那就找運維或者開發了,我們只需要統計出你需要的接口在哪個時間段調用量最高,峰值是多少,然后根據上面的公式來計算出TPS即可,計算出的的tps直接定為這個接口的預期TPS

 

二、針對新項目

在新項目中我們可沒有這些線上數據,這怎么搞?一般在新項目上線前,很有可能會先壓測一波,評估下項目的性能如何,到底能支持多少的並發,這個時候這個性能預期更為重要。但是我們又如何確定這個數據呢?

這里我們一般會使用“二八定律”

二八定律又名 80/20 定律、帕累托法則(Pareto‘s principle)也叫巴萊特定律、朱倫法則(Juran's Principle)、關鍵少數法則(Vital FeRule)、不重要多數法則(Trivial Many Rule)最省力的法則、不平衡原則等,被廣泛應用於社會學及企業管理學等。
有句話說:世界上百分之八十的財富都掌握在百分之二十的人手里,不無道理
同樣二八定律也適合我們目前的場景
通常,一個網站80%的用戶請求是發生在20%的時間內,比如一個商城而言,針對下單購物,也基本是符合二八定律的,因為基本都集中在中午或者晚上下班的時候人們才會去購物吧。
二八定律的核心是關注重要的部分,忽略次要的部分,同樣,如果在重要的部分都能夠經受住考驗,那么次要的也就沒啥問題了,比如:我們的新系統的性能能夠支撐發生在20% 的時間內的高並發請求,那么也必然可以支撐非高峰期的80%的時間訪問
 
具體說下怎么使用二八定律來計算預期的指標
首先預估下系統的每日總請求數,這個一般是通過用戶量或者其他關聯系統來預估,
比如:你們的系統要新增一個功能,但是這個接口還沒有上線,所以我們沒有數據,那么我們根據現在的用戶量來看,假如用戶量為500W,其中日活為100w,在極端的情況下,這100W人都會來使用這個功能(實際可能沒有,但是我們這是評估),那么每天都會有100W的調用量,80%的請求也就是:100W*0.8=80W
其次確定系統的20%的時間,假設我們的系統是24H提供服務的,但是一般在0點到6點的訪問量極低,我們直接去掉這個時間,那就剩下18H,那么20%的時間也就是:18*20%*3600s=12960s
最終計算的結果為:80w請求/12960s = 62左右,也就是說這個接口的TPS滿足61即可,但是同時還要考慮一個點,因為我們上面評估的基准用戶量是日活的100w,有沒有可能會發生這個功能上線后,會有超過這個日活量的用戶都會來使用這個功能,所以在這里我們還要乘以一個冗余系數,提高預期指標
但是冗余系數怎么定?一般來說這個冗余系數為2-5(這個是行業經驗吧),通過上面的62,假設我們取冗余系數為3,那就是186,所以我們最終得出的TPS標准就為186
 
 
總結下二八定律的計算方法:80%的請求 / 20%的時間 * 冗余系數
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM