性能測試核心流程和概念


01性能測試流程

在很多同學的概念中,性能測試就是使用Loadrunner、Jmeter等工具進行壓測,然后得到測試結果即可,但仔細想想,對誰進行測試?測試目的是什么?監測指標有哪些?得到的結果如何分析(怎樣的結果算通過)等等。

所以使用工具壓測只是性能測試最基礎的一個步驟,下面先來看看性能測試的一般流程:

 

  • 業務學習:通過查看需求文檔、PRD等相關文檔+手工操作來了解系統功能; 
  • 分析需求:分析系統的非功能需求,圈定性能測試的范圍,了解系統性能指標; 
  • 工作評估:工作量分解,評估工作量,計划資源投入(需要多少硬件資源,多少人力、時長來完成測試工作)。 
  • 設計模型:可以理解為測試場景,是單一測試場景還是混合測試場景; 
  • 編寫計划:測試計划應明確列出測試范圍、人力投入、持續時間、工作內容、風險評估、風險應對策略等; 
  • 准備測試環境:准備服務器(部署被測系統),負載機(安裝壓測工具,產生負載的機器)
  • 准備測試數據:根據測試場景(設計模型)准備數據,原因有兩個:a、有些數據是支撐系統運行的基礎(比如我們要對登錄進行壓測,首先需要准備一些注冊好的賬號);b、不同量級數據影響性能結果(比如從不同量級的數據庫查詢結果,時間肯定不一樣),至於准備什么量級的數據則需要跟項目實際情況來設計;
  • 開發腳本:根據測試場景,測試用例開發測試腳本(錄制或手動編寫); 
  • 測試執行:運行測試; 
  • 缺陷管理:跟蹤測試過程中發現的缺陷; 
  • 性能分析:對性能測試結果進行分析,是否滿足預期目標,如果不滿足則需找出原因; 
  • 性能調優:根據上一步的分析,嘗試優化系統; 
  • 測試報告:對測試工作進行總結,報告測試結果,發現的問題等 
  • 評審:對性能報告中的內容進行評審,確認問題、評估上線風險。雖然有時候性能測試結果不理想,但基於時間和成本等方面的考慮也會上線,后續再快速迭代。

 

 

 

 

性能測試交付件:

  • 測試計划

  • 測試腳本

  • 測試程序

  • 測試報告

 

02性能測試成功要素

 

性能測試上手較難,是一門融合測試、開發、運維、需求調研、架構、協調管理等綜合技能的學科,掌握一個測試工具只是最基礎的一步。

 

性能測試有幾大難點:

  • 需求分析

  • 場景設計

  • 性能診斷調優

  • 環境搭建和模擬

 

03性能測試常用術語

(1)負載:模擬用戶操作對服務器造成壓力的過程,比如模擬100個用戶同時登錄; 

 

(2)性能測試(Performance Test):在指定的負載情況下,系統性能指標(響應時間、吞吐量等)是否滿足要求; 

 

(3)負載測試(Loading Test):

在一定的硬件環境前提下,通過不斷的增加負載(不同的虛擬用戶數)來確定滿足性能指標情況下所能夠承受的最大並發用戶數。簡單來說,就是幫我們對系統進行定容定量,找出系統性能拐點,給予生成環境規划建議。

 

這里說的性能指標包括:

  • TPS(每秒事務數)

  • RT(事務平均響應時間)

  • CPU Using(CPU利用率)

  • Memory Using(內存利用率)等

 

(4)壓力/強度測試:

在一定的軟硬件環境下,通過高負載的手段來使服務器資源(強調服務器資源,硬件資源)處於極限狀態,測試系統在極限狀態下長時間運行十分穩定,確定是否穩定的指標包括TPS、RT、CPU利用率、內存利用率等;

 

(5)穩定性測試:

在一定軟硬件環境下,長時間運行一定的負載,確定系統在滿足性能指標的前提下是否運行穩定。與上面的壓力/強度測試區別在於負載並不強調在極限狀態下,一般使用目標負載的1.5~2倍的負載數量進行測試; 

 

(6)TPS:每秒完成事務數

事務是指一個操作集合,不同場景中事務所包含的操作不同,這個概念我們后續結合實例介紹

 

(7)RT:響應時間

指一個事務花費多長時間完成,為了使這個值更具代表性,會統計平均值,也就是ART,不過一般說RT就是指平均響應時間。

 

(8)PV(Page View):每秒用戶訪問頁面的次數

此參數可以幫助我們分析平均每秒有多少個用戶訪問頁面

 

(9)Vuser(Virtual User):虛擬用戶

用來模仿真實用戶進行操作;

 

(10)Concurrency(並發):

  • 狹義並發:虛擬用戶在同一時刻做同一件事情或操作,這種操作一般針對同一類型的業務,或者所有用戶進行完全一樣的操作,目的是測試數據庫和程序對並發操作的處理。

  • 廣義並發:虛擬用戶對系統進行操作,但操作可以不同;

    狹義並發多適用於單一測試場景,廣義並發多適用於混合測試場景、穩定性測試場景;

 

(11)場景(Scenario):模擬真實用戶某個操作的過程,這個過程就可以稱為一個場景,我們舉個論壇系統的例子:

  • 單一場景:用戶登錄,單單這個login的動作就是一個場景;

  • 混合場景:用戶發帖場景,可能包含以下幾個動作,先登錄,打開發帖頁,輸入文字,選擇板塊,發帖,這幾個動作組成了一個發帖的混合場景;

 

(12)思考時間(Think Time):因為用戶在進行操作時,每個操作是有時間間隔的,對應到腳本中,就是兩個請求腳本之間的時間間隔

 

04性能測試通過標准

 

 


免責聲明!

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



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