1. 程式人生 > 實用技巧 >效能測試基礎理論知識

效能測試基礎理論知識

效能測試需要具備的技能

  • 掌握一門程式語言
  • 掌握計算機原理+作業系統知識
  • 良好的網路基礎
  • 掌握資料庫知識
  • 中介軟體
  • 效能測試工具

1.效能測試概述

1.1什麼是效能測試

​ 系統在一定的壓力情況下,檢視cpu,記憶體,磁碟,網路頻寬,TPS、響應時間、併發使用者數、等各項指標,通過模擬生產執行的業務壓力量和使用場景組合,測試系統的效能是否滿足生產效能要求,就是在特定的執行條件下驗證系統的能力狀況。

1.2效能測試目的

目的:驗證是否達到使用者的效能指標;發現軟體中存在的效能瓶頸並優化
1.評估系統的能力:測試中得到的負荷和響應時間資料可以被用於驗證所計劃的模型的能力,並幫助作出決策。
2.識別體系中的弱點:受控的負荷可以被增加到一個極端的水平,並突破它,從而修復體系的瓶頸或薄弱的地方。
3.系統調優:重複執行測試,驗證調整系統的活動是否達到預期結果,從而改進效能。如:長時間的執行可導致記憶體洩漏
4.驗證穩定性:在一定生產負荷下執行測試的一定的時間,以評估系統穩定性和可靠性是否滿足要求。

1.3效能測試關注點

1.從使用者角度:響應時間(還要我等多久)、穩定性(為什麼總是失敗)
2.從管理員的角度:資源利用率、可擴充套件性、系統容量、穩定性
3.從開發視角:架構設計、資料庫設計、程式碼
4.從測試工程師角度:測試人員需要考慮全面的效能,包括、使用者、開發、管理員等各個視角的效能
測試人員在做效能測試時除開要關注表面現象如響應時間,也要關注本質,比如使用者看不到的伺服器資料利 用率

2.常用效能指標

2.1響應時間

客戶端到服務端的請求時間,從服務端返回資料到客戶端的時間,頁面渲染時間

2.2吞吐量

1.從效能測試角度,吞吐量指單位時間內系統處理使用者的請求數

2.從業務角度看,吞吐量可以用請求數/秒、頁面數/秒、人數/天或業務數/每小時等單位來衡量用請求數/秒、頁面數/秒來衡量

3.從網路角度,吞吐量可以用:位元組/秒來衡量

4.對於互動式應用來說,吞吐量指標反映的是伺服器承受的壓力,他能夠說明系統的負載能力

2.3併發數

併發:用於從業務的角度模擬真實使用者訪問,併發分為嚴格併發、廣義併發
併發數:同時訪問系統的使用者數,併發使用者數決定於具體的業務場景,在確定併發使用者數之前,必須先對使用者的業務進行分解,分析出其典型的使用者場景(使用者最常 用、最關注的業務操作),然後基於場景獲得其併發使用者數。常見場景:網址首頁、登入功能、核心業務功能、個人中心
平均併發使用者數的計算

\[C=nL/T \]

C是平均的併發使用者數 n是平均每天訪問使用者數 L是一天內使用者從登入到退出的平均時間 T是考察時間長度
併發使用者數峰值

\[C'=C + 3\sqrt{C} \]

C'是併發使用者峰值 C是平均併發使用者數

2.4系統性能計數器

描述伺服器或作業系統效能的一些資料指標;比如:記憶體、cpu、磁碟等資源使用率等

2.5思考時間

思考時間是指使用者在進行操作時,每個請求之間的間隔時間
在測試指令碼中,思考時間體現為指令碼中兩個請求語句之間的間隔時間。
設定思考時間是為了更加真實的模擬使用者操作。

2.6每秒事務數-TPS

​ 事務是使用者的一個完整操作或者幾步操作的集合。比如使用者對某一個頁面的一次請求,使用者對某系統的一次登入,淘寶使用者對商品的一次確認支付過程。這些我們都可以看作一個事物。那麼如何衡量伺服器對事物的處理能力。引出一個概念-TPS

TPS(Transaction Per second),每秒鐘系統能夠處理事務或交易的數量,它是衡量系統處理能力的重要指標。

2.7每秒點選數

每秒鐘使用者向WEB伺服器提交的HTTP請求數,這個指標是WEB應用特有的一個指標。WEB應用是“請求-響應”模式,使用者發出一次申請,伺服器就要處理一次,所以點選是WEB應用能夠處理的交易的最小單位。如果把每次點選定義為一個交易,點選率和TPS就是一個概念,容易看出,點選率越大,對伺服器的壓力越大。點選率只是一個性能參考指標,重要的是分析點選時產生的影響。需要注意的是,這裡的點選並非指滑鼠的一次單機操作,因為在一次單擊操作中,客戶端可能向伺服器發出多個HTTP請求。

3.效能測試方法

3.1驗收效能測試

​ 通過模擬生產執行的業務壓力量和使用場景組合,測試系統能否滿足生成效能要求。主要用來驗證系統是否 能達到宣稱的能力。是一種完全確定了系統系統執行環境和測試行為。
內容:確定使用者場景、給出需要關注的效能指標、測試執行、測試分析。
示例:要求系統在100個併發使用者的條件下進行A業務操作,響應時間不應超過5s

3.2負載測試

​ 負載測試主要是考察軟體系統在既定負載下的效能表現。對負載測試有如下解:負載測試是站在使用者的角度去觀察在一定條件下,軟體系統的效能表現;負載測試的預期結果是使用者的效能需求得到滿足。此指標一般為響應時間、交易容量、併發容量、資源使用率等。

3.3壓力測試

為了考察系統在極端條件下的表現,極端條件可以是超負荷的交易量和併發使用者數。注意,這個極端條件並不一定是使用者的效能需求,可能 遠遠高於使用者的效能需求。

壓力測試與負載測試的區別:
    壓力測試關係的是系統本身
    負載測試關心的是使用者需求
    壓力測試的預期結果就是系統出現問題,我們考察的是系統處理問題的能力。
    負載測試是考察軟體系統在既定負載下的效能表現。
    壓力測試是能讓我們識別系統的弱點和在極限負載下程式將如何執行

3.4併發測試

​ 驗證系統的併發處理能力。一般是和伺服器端建立大量的併發連線,通過客戶端的響應時間和伺服器端的效能監測情況來判斷系統是否達到了既定的併發能力指標
​ 之所以把併發測試單獨提出來,是因為併發測試往往涉及伺服器的併發容量,以及多程序/多執行緒協調同步可能帶來的問題。這是要特別注意,必須測試的

3.5基準測試

​ 當軟體中增加一個新的模組的時候,需要做基準測試,以判斷新模組對整個軟體系統的效能影響。按照基準測試的方法,需要開啟/關閉新模組至少各做一次測試。關閉模組之前的系統各個效能指標標記下來作為基準,然後與開啟模組情況下的系統性能指標作比較,以判斷模組對系統性能的影響。

3.6可靠性測試

​ 測試系統在一定負載下執行長時間後是否會發生問題。軟體系統的有些問題是不能一下子就暴露出來的,或者是需要時間積累才能達到能夠度量的程度。這種問題一般是程式佔用資源卻不能及時釋放而引起的。比如,記憶體洩漏就是經過一段時間累積才會慢慢變得顯著,在執行初期卻很難檢測出來。客戶端和伺服器連線通路,不能有效地及時釋放。

3.7配置測試

​ 通過對被測系統軟硬體環境得調整,瞭解各種不同環境對系統性能影響得程度,從而找到系統各項資源得最優分配原則。一般用於效能調優和規劃能力。

3.8可恢復性測試

針對有冗餘備份和負載均衡得系統設計的。用來檢驗如果系統局部發生故障,使用者是否能夠繼續使用系統,以及如果這種情況發生,使用者將受到多大程度的影響。測試系統能否快速地從錯誤狀態中恢復到正常狀態

特點:

  1. 主要目的是驗證在區域性故障情況下,系統能否繼續使用。一般的業務系統都會採用熱備份或負載均衡的方式實現。
  2. 當問題發生時能支援多少使用者訪問。
  3. 不是所有的系統都需要進行失效性測試。

4.效能測試應用

4.1能力驗證

​ 當能力驗證時效能測試中最簡單也最常用的一個應用領域,通常會採取這樣的描述方式:“某系統能否在A條件下具備B能力”

能力驗證領域的特點:
1.要求在已確定的環境下執行
2.需要根據典型場景設計測試用例和方案

常用方法:負載測試、可靠性測試、壓力測試和失效恢復測試

4.2規劃能力

​ 關心的是“應該如何使系統具有我們要求得效能能力”或是“在某種可能發生的條件下,系統具有如何的效能能力”

規劃能力領域特點:
1.它是一種探索性測試
2.它可被用於瞭解系統的效能以及獲得擴充套件效能得方法
常用方法:負載測試、配置測試、壓力測試

4.3效能調優

效能調優應用領域主要應用於對系統性能進行調優。一個標準的效能調優過程包括以下
步驟:
1.確定基準環境、基準負載和基準效能指標
2.調整系統執行環境和實現方法,執行測試 硬體環境的調整、系統設定的調整、應用 級別的調整
3.記錄測試結果,進行分析
常用方法:配置測

4.4缺陷發現

​ 缺陷發現應用領域的主要目的是通過效能測試手段來發現系統中存在的缺陷,並沒有可參照的效能指標或需要達到的效能目標,因此主要採用併發測試的方法。如果還需要關注壓力及失效恢復過程中的問題,則可以採用壓力測試和失效恢復測試的方法。

4.5效能基準比較

​ 效能基準比較,就是在不設定明確的效能目標的情況下,通過比較得到每次迭代中的效能表現變化,根據這些變化決定迭代是否達到了預期目標

常用方法:壓力測試、併發測試

5.效能測試流程

5.1效能需求分析

效能需求分析要得到的結論
1、明確到底要不要做效能測試
2、明確被測系統特點、基本業務、 關鍵業務、使用者行為
3、測試範圍
4、測試目標及效能指標
5、效能測試策略(方法)

5.2效能測試計劃

測試目的
測試質量目標
測試環境
測試階段和範圍
測試策略
測試時間和人員安排
測試用例

5.3準備與計劃

主要任務:
1、測試環境準備
2、測試用例設計
3、測試指令碼開發與除錯
4、測試資料準備

5.4效能測試執行

準備好環境和部署好測試指令碼及場景後, 就可以執行測試並記錄測試結果。

在測試工具的輔助下, 測試執行是非常簡單的操作,
一般只需要使用選單或按鈕l就可以完成, 記錄測試的
工作也可以依靠工具完成。

5.5效能測試分析與報告

效能測試目標、 效能測試環境

效能測試資料構造規則、 效能測試策略

效能測試結果、 效能測試優說明(重要)

效能測試過程中遇到的問題和解決辦法等