在實際工作中,我們會接受到各種各樣的性能測試任務,但是在這些性能測試任務中,很大的可能接口的性能指標沒有辦法很明確的給到測試人員,在這個時候怎么處理呢?
最理想的情況是:開發或者是項目經理/產品已經提前確定好了性能指標,然后將這個指標很明確的告訴你,這個接口就是要達到多少的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
二、針對新項目
在新項目中我們可沒有這些線上數據,這怎么搞?一般在新項目上線前,很有可能會先壓測一波,評估下項目的性能如何,到底能支持多少的並發,這個時候這個性能預期更為重要。但是我們又如何確定這個數據呢?
這里我們一般會使用“二八定律”