這是性能測試知識科普的第五篇文章。
前面的文章分享了性能測試中的核心術語和指標、常用測試策略、壓測工具選型以及性能需求分析的內容。
寫這篇文章的初衷是昨天有同學諮詢我,希望通過付費方式讓我教她性能測試,可以達到獨立owner項目的程度。
因此,這篇文章我想聊聊業內對於性能測試能力的定義和分層,以及在不同的階段應該重點學習哪些知識。
性能測試能力分層
按照業內對性能測試工程師的要求以及在實際工作中要做的事情,結合我自己的工作經驗,性能測試的能力分層可以參考下面的表格:
崗位分級 |
必備技能 |
角色定位 |
關鍵任務 |
初級 |
1、性能測試基礎理論 2、熟練使用壓測工具 |
腳本執行工具人 |
1、能寫腳本 2、看得懂監控指標 |
中級/高級 |
1、性能測試基礎理論 2、熟練使用壓測及監控工具 3、對業務有不同程度的瞭解 |
一定的獨立負責需求能力 |
1、能寫腳本造數據 2、看得懂監控指標 3、不同程度的需求分析能力 |
資深 |
1、豐富的理論知識 2、掌握各種壓測監控分析工具 3、對業務場景有足夠的瞭解 4、對被測系統有足夠的瞭解 |
1、獨自owner複雜項目 2、指導團隊同學性能測試工作 |
1、owner項目 2、事前評估事中驗證事後參與定位優化 |
專家 |
1、豐富的理論知識 2、根據不同情況靈活應用各種工具 3、對業務和技術架構有足夠的瞭解 4、能評估能規劃能定位能分析能優化 |
一站到底 |
下面是關於上表中部分描述的釋義以及個人的一些觀點,僅供參考:
- 基礎理論:這個應該不用解釋,做性能測試的前提是你要對基礎理論有一定的瞭解;
- 壓測工具:性能落實到具體的事情上就是壓測驗證,熟練使用壓測工具是最基本的能力;
- 監控工具:性能測試工作需要觀察各項監控指標來評估分析,因此熟練使用監控分析工具也是基本能力;
- 業務場景:性能測試和功能測試沒啥區別,所有的測試工具開展都是基於業務場景的,因此需要熟悉具體的業務;
- 技術架構:性能測試的測試對象是各種軟件系統,因此瞭解系統的技術架構和各種調用依賴關係也是必不可少的;
- 評估能力:問題越早發現修復成本越低,在需求和方案評審時就評估發現風險,這是高級向資深邁步的必備能力;
- 規劃能力:上面的六點能力主要集中在如何解決問題,規劃能力是建設解決問題能力的底層建設和整體發展方向;
- 一站到底:對於專家崗位,我的認知是所有這個領域的問題到這裏就應該都被解決,無論是技術難題還是溝通協調;
面向對象學習知識
如上圖所示,性能測試的對象是軟件系統,服務部署於基於硬件的服務器上,測試過程中要考慮網絡資源、通信協議、系統架構、服務調用關係、業務場景邏輯、代碼實現原理以及各種參數配置。
只有對這些影響性能的因素有足夠的瞭解,才能說真正的做好性能測試工作。
因此在不同階段,建議結合當前所處階段和工作需要,以及長期的發展方向來提前學習不同的知識。
對於處在不同階段的同學,我的學習建議如下:
所處階段 |
學習內容 |
|
短期 |
長期 |
|
初級 |
靈活使用工具 學會分析需求 |
|
中級/高級 |
大量的理論知識 常見的系統架構 常見中間件原理 |
|
資深 |
協調溝通 項目管理 |
熟練的編碼能力 持續的覆盤能力 總結和輸出能力 |
專家 |
/ |
/ |
下面是關於上表中部分描述的釋義以及個人的一些觀點,僅供參考:
靈活使用工具:除了壓測工具,還有分析工具,監控工具等,靈活使用指的是把工具當初輔助,而不是路徑依賴;
常見系統架構和中間件:上文解釋過,如果不瞭解被測系統的架構和各種技術組件,很難分析和定位優化系統性能;
基礎運維知識和編碼能力:監控、日誌、環境部署、交付流水線大多是運維團隊負責,編碼能力更多的是不被掣肘;
協調溝通和項目管理能力:複雜項目大多是多人且跨團隊,工作開展除了技術,還有溝通協調和項目管理的軟技能;
持續覆盤和總結輸出能力:從資深到專家,是需要形成自己的影響力且需要大量的工作實踐和不斷的覆盤總結輸出;
最後,至於去那裏尋找這些學習的資料或者課程,建議大家自行搜索。
目前有很多專業的技術社區和主打技術課程的付費課程,自行選擇即可。
不推薦找培訓班,性價比低,且容易養成依賴。