一、獲取測試需求
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等。
九、瓶頸分析定位
待續
十、測試結果反饋
十一、測試報告
-----------------------------------------------------------------------分割線----------------------------------------------------------------------------
整個效能測試過程中主要重點在需求分析階段,根據測試目的確定了使用什麼測試方法,業務場景、效能指標都確定了,接下來就是按部就班的走下去就行了,找到瓶頸之後進行調優,然後在進行測試,如此反覆,直到達到預期的測試結果從而結束測試。調優這裡大概是效能測試最有技術含量的點了,需要大量的業務知識和技術積累。