一,需求分析與測試設計
- 根據具體的性能測試需求,確定測試類型以及壓測模塊(web/mysql/redis/系統整體)
- 前期要與相關人員充分溝通,初步確定壓測方案以及具體性能指標(比如跟產品確認這個產品預計的流量,轉化爲併發用戶數,TPS,映射成我們的性能預期。跟研發確認被壓服務的細節,可以更好的準備測試數據,提前規避壓測風險。初步確認壓測方案,性能指標)
- QA完成性能測試設計後,需要產出測試方案文檔發送郵件到項目組,並且再次與相關人員溝通(或者組織性能測試評審),確認是否滿足需求
二,環境設計與搭建
三,測試數據準備和構造
- 接口請求參數:自己構造/日誌獲取/上下關聯;
- 數據表的數據填充;
- 如果是多接口,則需要結合業務場景設計請求比例;
四,性能指標預期
- 每秒請求數(QPS)
- 請求響應時間(最小,最大,平均)
- 錯誤率
- 機器性能:cpu idle 30%,memory無劇烈抖動或表示
- 壓測過程接口功能是否正常
不同性能測試方式下指標預期會有差異
五,發壓工具配置與腳本編寫
1. 發壓工具準備
Jmeter工具介紹
- 集成包,解壓即可使用,windows,linux通用(依賴java環境)
- jmx腳本未xml文件,win,linux環境均可直接運行
- 多線程併發
- 運行完腳本會生成jtl日誌,可在win環境界面工具中查看,統計
2. 腳本的編寫
- http請求
- 其他
3.命令:
- 啓動壓測:./jmeter -n -t hb.jmx -l hb.jtl
六,測試過程
壓測過程說明/共識
- 測試前環境檢查:記錄機器參數
- 啓動壓測:根據被壓情況,調節併發量到合適的情況
- 查看記錄各項性能指標
- nginx日誌查看每秒請求數
- 查看nginx錯誤請求
- 查看機器參數:cpu idle,mem等
- 查看db,cache等數據是否寫入正常
- 訪問接口,查看功能是否正常
七,結果分析與測試報告
- 根據測試過程中記錄的各項參數,結合壓測工具產生的日誌,對測試結果進行分析併產生測試報告
- 測試完成後,及時和相關人員溝通,確認是否滿足需求
- 發送測試報告郵件