一、準備工作
在什么階段開展性能測試工作?一般情況下,是在被測系統已完成功能測試、系統趨于穩定的情況下,才會進行性能測試。
1. 組建測試團隊
- 根據被測系統的實際情況,組建一個性能測試團隊,團隊成員包括:開發人員、運維人員、DBA和測試人員等。
2. 性能需求調研
- 性能需求調研工作一般是有性能測試人員負責,產品經理、開發人員、運維人員配合完成。
- 調研系統線上環境的性能需求,包括性能需求、可靠性需求、可維護性需求等。
- 調研系統相關信息,如硬件參數配置、系統架構與部署方式等。
- 調研業務場景信息,如關鍵業務邏輯與處理流程、交易列表、交易量信息、業務分布規律等。
3. 工具的選擇
- 綜合系統設計、工具成本、測試團隊的技能來考慮,選擇合適的測試工具。
- 壓測工具:JMeter、Loadrunner、Locust等等。
- 監控工具:nmon、lepus、jvisualvm、prometheus、grafana等等。
二、性能測試計劃
1. 分析性能測試背景
根據對項目背景和業務的了解,確定本次性能測試要解決的問題點。常見的情況有:
- 對于一個新系統,需要測試系統的承受能力。
- 對于運行中的系統不能滿足實際的需求,需要確定性能瓶頸。
- 增加了新的業務,需要重新評估系統的承受能力。
- 系統架構進行了調整,需要重新評估系統的承受能力。
2. 分析用戶場景
根據對系統業務、用戶活躍時間、訪問頻率、場景交互等各方面的分析,整理業務場景,為測試腳本開發提供依據。
3. 確定性能目標
針對具體的業務功能點,制定期望的性能目標。其中需要和其他業務部門進行溝通協商,以及結合當前系統的響應時間等數據,確定最終我們需要達到的響應時間和系統資源使用率等目標。
4. 制定性能測試實施計劃
根據項目組的時間安排,計劃本次性能測試的起止時間、參與人員、產出物等等。

三、性能測試設計
1. 測試環境設計
不同的軟件和硬件配置會制約系統的整體性能,所以需要部署多個不同的測試環境,在不同的硬件配置上檢查應用系統的性能,并對不同配置下系統的測試結果進行分析,得出最優結果。需要重點關注有數據庫服務器、應用服務器、軟件運行環境。
2. 測試場景設計
根據被測系統的業務特性,并通過和業務部門溝通以及以往用戶操作習慣,確定用戶操作習慣模式,以及不同的場景用戶數量,操作次數,確定測試指標,以及性能監控等。
3. 測試用例設計
根據設計的測試場景,編寫測試用例。用例的核心內容包括:用例編號、用例標題、前置條件、操作步驟、測試數據、預期結果、實際結果等等。
4. 編寫測試腳本
根據測試用例和選擇的工具,準備測試數據,編寫測試腳本。
四、性能測試執行
1. 部署測試環境
一般由運維或開發人員進行環境的部署,并進行資源協調。
2. 執行測試腳本
在已部署好的測試環境中,按照業務場景和測試用例,按順序執行我們已經設計好的測試腳本。
3. 性能監控和記錄
根據選擇的測試工具和監控工具,在壓測的過程中對各項性能指標進行監控和記錄。
五、性能測試分析
- 分析不同的測試環境下,硬件設備的性能指標與預期的性能指標進行對比,確定是否達到了我們需要的結果。針對沒有達到預期的指標,分析具體的瓶頸點。
- 分析不同的測試環境下,分析應用服務器、數據庫服務器、中間件等組件的性能指標。
- 在性能測試執行過程中,可能會發現某些功能上的不足或存在的缺陷,以及需要優化的地方。
六、性能測試調優
- 確定問題:根據性能分析的結果確定存在的性能問題。
- 分析問題:根據確定的問題進行具體詳細的分析出現問題的原因。
- 確定調整目標和解決方案。
- 測試解決方案:對調優后的系統再次進行測試。
- 分析調優結果:分析調優結果是否到達了預期目標。
七、性能匯總與報告
- 對性能測試的過程和結果進行匯總
- 編寫性能測試報告