性能測試基本流程
本文主要介紹下性能測試的基本流程,性能測試從執行層面來看,測試的過程主要分為以下幾個階段,如下圖:
一、性能測試需求分析
1、獲取有效需求
a) 根據歷史數據分析:應用監控、日誌分析、開放平台
b) 客戶提出:產品、開發、運維、第三方客戶
c) 需求分析與定位
d) 參考歷史項目或其他同行業的項目
2、測試目的
a) 評價系統當前性能,判斷系統是否滿足預期的性能需求
b) 尋找系統可能存在的性能問題,進行系統調優
c) 判定軟件系統的性能表現,預見系統負載承受力和穩定性
3、業務模型
a) 基本業務功能
b) 關鍵業務處理流程:
業務流程、交易路徑、交易數據、交易流程與時序圖
c) 交易列表:
交易的組合關係、交易的執行順序
d) 交易信息量:
單個交易處理量(日、月、年)、總交易量(日、月、年)、各交易的佔比
4、性能指標
QPS/TPS、並發數、響應時間、成功率、點擊率、資源利用率
二、性能測試準備
1、環境準備
系統運行環境:指測試的環境,通常是壓測環境
1)確認服務是否部署
2)確認配置文件是否需要修改
3)確認數據庫是否需要同步
4)確認服務啟動是否正常
5)確認是否需要構造數據
6)確認被測接口是否有其他服務依賴
2、測試場景設計:
根據性能需求分析來設計測試場景,場景設計的好壞直接影響性能測試結果;
3、性能測試工具準備
a) 負載工具:根據需求分析和系統特點選擇合適的負載工具,LR、Jmeter等;
b) 監控工具:監控性能測試時的服務器資源、JVM、數據庫、日誌等;
4、測試腳本準備
a) 一個腳本一般為一項業務的過程描述(錄製或編寫)
b) 腳本強化:根據需求插入事務、參數化、檢查點、集合點等
c) 根據選擇的工具不同,而使用不同的腳本;
d) 當性能測試工具不能滿足被測系統的要求或者只能滿足部分要求時,需要我們自己開發腳本配合工具進行性能測試;
三、性能測試執行
1、執行測試(jmeter執行或者自動化測試平台中執行):
測試腳本、測試數據檢查、準備和完善;測試環境初始化;開啟數據收集器;開始測試;
2、過程監控:
觀察測試運行情況,監控日誌,確保測試不收干擾;
受到干擾的數據作廢,重啟測試;
3、結果記錄:
結果數據記錄要全面、有效;是結果分析和調優的重要依據;
四、結果分析與調優
1、結果分析:
硬件的瓶頸、應用軟件的瓶頸、數據庫的瓶頸、中間件的瓶頸、操作系統的瓶頸、網絡設備的瓶頸;
2、性能調優:
確定問題、確定原因、確定調整目標和解決方案、測試解決方案、分析調優結果
五、報告與總結
測試完成後,最好做個測試總結,記錄測試過程遇到的問題以及解決過程。性能測試是一個重經驗的過程。