1. 程式人生 > 其它 >效能測試面試題2-描述一下效能測試流程?

效能測試面試題2-描述一下效能測試流程?

一、前期準備
最理想的狀態,就是在需求評審階段就應該參與,這樣可以深入瞭解系統業務,重要功能的業務邏輯,為效能測試做準備

二、效能評審需求分析
1、明確性能測試的範圍
2、明確性能指標
最好是引導產品、需求或者開發出壓測目標(分別是單場景、混合場景、穩定性場景的)
定效能指標,又分為迭代專案和新專案,迭代專案就根據生產監控、日誌分析來評估指標,這裡需要做容量規劃,新專案單獨評估

效能指標:一般是tps(每秒處理事務數,這裡都是通過的事務)、art(平均響應時間)及併發數,加上伺服器資料利用率的要求(cpu、記憶體、IO、網路等)、各個服務的資源情況。

3、熟悉專案架構,知道要監控哪些伺服器,以及準備監控的方案
包含具體用到的web伺服器、應用伺服器、快取資料庫伺服器、資料庫伺服器、檔案伺服器等
主流的技術棧:nginx、dubbo、mysql、redis、jvm等等

4、制定效能測試方案
比如,壓測、監控、分析工具的選擇、場景設計、什麼時候做什麼事情

三、搭建測試環境,準備測試資料

搭建測試環境:壓力機、壓測工具、監控工具easynmon、jvm穩定性監控等
準備測試資料:測試資料又基礎資料,業務資料
基礎資料可以從測試庫裡匯出來

業務資料包含:存量資料+容量規劃資料,比如一個查詢介面,都是併發100使用者,對應的表資料量是1萬和100萬,壓測結果是不一樣的;
資料量要參考生產環境,如果是新專案,除了空庫壓,最好也做一下存量資料壓。(啥意思,沒太明白)


四、開發指令碼

jmeter:引數化、關聯、事務、檢查點、思考時間、資訊頭管理器等

五、執行測試
1、基準測試
2、單場景測試
3、混合場景測試
4、穩定性壓測

六、監控資料
一步一步排查請求流經的節點,包括伺服器資源(cpu、記憶體、磁碟io、網路)是否存在效能瓶頸、是否存在佇列、執行緒池、連線池、執行緒死鎖、資料庫死鎖、慢sql、長事務等效能問題;

linux伺服器,常用的命令是top、vmstat、free、df、sar、iostat、netstat等,一般是多個命令配合著用;
java應用:jvisualvm、jconsole、jmap、jstat、jstack等,以及自己寫的一些shell指令碼;
redis、mysql、jvm等等

七、分析定位
基於上一步的監控資料,對瓶頸進行分析、定位,模組隔離分析、日誌分析、記憶體分析、執行緒棧分析、程式碼跟蹤等等;

這個真需要實戰積累,沒有捷徑,遇到好幾個去參加過效能培訓的朋友,他們反饋說還是不會效能,操作起來同樣一臉懵逼、無從下手。

八、效能優化
定位到問題了,大部分情況下,優化方案也就有了,測試可以把自己建議的優化方案告訴開發,開發會結合自己的方案,一起做優化方案評估;如果測試沒有優化方案,那就把問題反饋給開發吧,但是也好好學學開發的優化思路,這就是成長的過程。

九、效能迴歸
優化後,複測。

十、編寫效能報告
測試結果是多少?測試是否通過?
發現了什麼效能問題?原因是什麼?
如何優化解決的?系統性能提升了多少倍?優化方案務必寫詳細,以便上線同事知道,把優化同步到其它各個環境。