性能測試--測試流程篇


一、制定目的
性能測試是一項嚴謹的需要各團隊協同配合的工作,其中包括產品、開發、運維、網絡、DBA、測試等角色。從零開始實施性能測試,而性能測試流程,是最重要的一步。
制定性能測試流程指南的目的,是從技術角度制定性能測試實施過程中關鍵技術規范,更好的對系統進行性能測試,幫助性能測試人員更好地從技術上來規避系統上線后的風險、
評估線上系統的真實能力,根據業務模型摸底線上能力以提前應對,盡可能減少系統上線后的性能風險帶來的損失。
二、適用范圍
對性能測試實施過程中非常重要和關鍵的相關技術進行分析,主要包括:
系統環境、測試指標、業務模型、數據量級、測試模型、測試策略、測試腳本、被測場景、服務監控、瓶頸分析、優化驗證。
三、測試流程
按照業內目前的最佳實踐,性能測試的流程是很詳細的,分為很多步驟。如下圖:
 
但考慮到從零開始實施的難度、公司所處的階段、研發部門技術建設以及上面提到的4點問題,在最開始時候,建議對其進行一定的精簡,原因有如下幾點:
1、接受程度:流程越精簡,各團隊成員的接受性越快;
2、推動難度:精簡的流程易於更快速的推動以及調整;
3、快速產出:更快的產生反饋,性能測試產出更及時;
4、心理落差:期待值越低,落地的結果越容易被接受;
根據個人最近的實施心得以及一些思考,精簡后的性能測試流程以及對應階段的崗位職責,如下圖:
 
四、四大階段
大體來說,性能測試的流程可分為如上四個階段,分別是需求階段、准備階段、實施階段以及結束。
1、需求階段
①、提出需求
性能測試一定是先有需求,才可以決定要不要繼續執行。而性能需求的提出方,可以是開發(覺得某個接口慢)、可以是運維(對某個系統的服務能力進行容量評估);
也可以是測試人員(從需求評審中分析出某個需求需要進行性能測試來規避風險)、更可以是產品(線上問題直接表現&用戶反饋)。
而上圖中項目負責人的角色不一定必須是崗位title意義上的PM角色,而是需要這么一個角色來做好居中溝通、資源協調的工作。
②、需求評審
不經過評審的需求往往有很多坑!!!只有多方相關人員參與評審,從各自的角度給出意見,溝通達成一致,才能決定后續的要不要做?怎么做?以及誰來做什么事情!
③、需求調研
需求調研階段主要是對后續性能測試實施的一些必要信息進行更細致的溝通和確認,以及在職責、工時、排期、交付時間這幾點上尋求平衡的可接受的點。
2、准備階段
①、環境准備
無論是功能測試還是自動化或者性能測試,總是需要一個合適的環境來進行。
對性能測試來說,無論是環境選擇(生產or性能測試環境)還是申請對應的資源(虛擬機&雲服務器&docker),一般都需要運維工程師來進行搭建配置。
②、應用部署
性能測試的被測應用必須是穩定的,沒有P2及以上缺陷或通過回歸測試的版本包,根據每個公司的職責定位不同,應用部署一般是開發進行部署,或開發提供對應的代碼路徑,運維進行拉取部署。
③、數據准備
性能測試對數據的要求是很高的,無論是數據量級、精准度抑或是數據的多樣性。一般分為如下幾種數據類型:
鋪底數據:最常見的准備方式為從生產拖庫最新的最完整的基礎數據來作為性能測試所用;
測試數據:比如性能測試場景需要讀寫大量的數據,而為了保證測試結果的准確性,一般通過從生產拉取同等量級或者至少未來一年的增長量級的脫敏數據;
參數化數據:不同類型的數據處理邏輯有差異時,需要通過測試數據的多樣化來提高性能測試代碼的覆蓋率,而參數化是最常見的方式;
④、腳本開發
性能測試腳本需要針對業務模型轉化后的測試模型以及采用的測試策略進行針對性的開發調試試運行。
3、實施階段
完成准備階段的工作,就開始開展性能壓測了(有時候需要進行壓測預熱),這也是很多對性能測試不太了解的同學對性能測試的認知(錄制腳本→無腦高並發)。
①、壓測執行
性能測試執行階段,是需要執行很多輪次,且測試腳本也需要不斷地調整修改,根據測試結果不斷改進的,這樣才能得到更為准確的測試結果。
②、服務監控
這個階段稱之為APM(Application Performance Management:對應用程序性能和可用性的監控管理)更合適。
狹義上的APM單指應用程序的監控,如應用的各接口性能和錯誤監控,分布式調用鏈路跟蹤,以及其他各類用於診斷(內存,線程等)的監控信息等。
廣義上的APM, 除了應用層的監控意外,還包括App端監控、頁面端監控、容器、服務器監控,以及其他平台組件如中間件容器、數據庫等層面的監控。
③、瓶頸定位
進行性能測試的目的,就是為了探測系統是否存在影響提供正常服務的性能瓶頸以及為上線提供容量評估。
如果系統性能表現未到達預期指標,則需要對日志、監控數據進行分析,定位其性能瓶頸並針對性的進行優化才可以。
④、優化驗證
發現性能瓶頸並修改優化后,需要再次執行壓測,以驗證問題是否得到解決以及性能的提升能力,衡量的標准是需求評審和調研階段確定的業務性能指標。
4、結束階段
性能測試結束的標志,一般包括如下如下幾點:
涉及的測試場景均已測試完畢、測試過程中發現的問題已全部修復驗證、測試結果達到了預期的性能指標、滿足上線要求。
①、測試報告
在滿足上面4個條件后,最好是出具一份簡潔但是明確的測試報告,說明本次性能測試的目的、范圍、環境信息、測試結果、問題,並給出測試結論。
測試報告的方式可以是文檔、郵件、一個HTML頁面等方式,但這個環節一定不能省略!!!
②、報告評審
最好是讓參與本次性能測試各環節工作的各個角色都參與進行評審,大家對結果無異議,即可視為本次性能測試結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM