一、獲取測試需求
1、系統結構分析
系統架構圖、網絡拓撲圖等(單體、集群、分布式、微服務、緩存、網關),主要目的是了解系統的數據流。
2、業務模型分析
什么場景下可能存在什么問題。常見的業務有審批、支付、訂單、庫存、查詢、數據更新、文件上傳下載等。其中支付業務關注強業務性和強數據一致性,數據更新關注數據庫的鎖、資源獨占等,文件的上傳下載需要關注網絡帶寬、線程休眠、文件轉換等。
3、測試需求分析
什么人(用戶)在哪個時間段(峰值流量)什么場景(業務場景)下執行了什么操作(接口處理,涉及的服務等),業務建模。
a)測試邊界
哪些不測哪些測,梳理清楚涉及到的業務場景和對應接口。
b)測試目的
能力驗證、容量規划、發現缺陷、基准比較。詳看性能測試應用領域
c)測試指標
一般由業務方提供。如果需求不明確,需要溝通確認測試指標(TPS、RT、系統性能計數器等)。
二、測試計划
類似於功能測試
三、測試方案設計
確定起止時間,測試環境配置,人員等,與測試計划具有重復,可合並。
四、測試環境搭建
搭建一個獨立的環境,或者使用SIT/UAT/正式環境。注意被測系統的穩定性、是否有交叉影響、和生產環境的一致性等
五、測試用例設計
類似於功能測試
六、測試數據准備
1、數據類型:基礎數據(本來就應該存在的系統內數據)、測試數據
2、准備方法:從生產上拉一份、通過腳本(JDBC)預埋數據
3、注意事項:數據隔離,數據清理,數據污染,可用“擋板”。
七、測試腳本編寫
最好做到可復用、簡潔、可移植。腳本的編寫涉及接口的相關信息(請求方式、方法、報文、通信協議、同步/異步等),還有框架的信息(dubbo、MQ、kafka、Spring Boot等)
八、測試腳本執行
1)執行過程中的數據收集
系統自帶的計數器,第三方工具等。
2)監控調試
使用工具監控各方面的資源消耗,例虛擬機可用nmon、docker類可用Prometheus、數據庫可用zabbix等。
九、瓶頸分析定位
待續
十、測試結果反饋
十一、測試報告
-----------------------------------------------------------------------分割線----------------------------------------------------------------------------
整個性能測試過程中主要重點在需求分析階段,根據測試目的確定了使用什么測試方法,業務場景、性能指標都確定了,接下來就是按部就班的走下去就行了,找到瓶頸之后進行調優,然后在進行測試,如此反復,直到達到預期的測試結果從而結束測試。調優這里大概是性能測試最有技術含量的點了,需要大量的業務知識和技術積累。