效能測試需求指標分析方法
一、 概述
本文目的是提供效能測試分析人員在測試需求分析階段提供技術指導作用,指導其對採集的業務資料進行整理並轉換為合理的專案效能需求指標,並提供測試執行人員在執行過程中以此為目標。
二、 名詞解釋
Ø 業務模型:描述業務系統在運營過程中核心交易配比(通常採集80%業務量的交易作為參考)清晰描述每個交易在系統業務量中的比例
Ø 測試模型:在測試執行時採用的交易配比模型。
三、 資料來源分析
Ø 線上業務資料
Ø 運維數情況資料
Ø 未來業務增長資料
四、 輸出描述
1. 測試需求分析報告中要清晰描述本次測試要進行哪幾種類型的測試。例如容量測試、穩定性測試、異常測試、速度測試、負載測試等
2. 測試需求分析報告中要清晰描述測試模型情況,測試模型和業務模型是有區別的,業務模型是從線上業務實際情況統計得來的,統計的資料是真實的線上資料,因此業務模型是線上交易分佈的真實展現。測試模型是以業務模型為依據並結合測試需要對業務模型進行調整。例如需要調高某一類交易所佔比例來實現測試目的。
3. 測試需求分析報告中要清晰描述測試指標,測試指標是用來評價一個系統是否滿足效能需求的標準,測試指標包括系統響應性、系統可用性、系統資源佔用率。
五、 測試型別選擇
1. 常見效能測試型別
測試型別 |
測試目的 |
操作說明 |
基準測試(speed Testing) |
這種型別的效能測試目的是獲得每個使用者活動的響應時間每個指令碼通要對結果進行校驗保證返回結果滿足預期。 |
基準測試通常是是首先被執行的效能測試,一些配置和安裝導致的問題在這裡可以被識別 ,基準測試是執行一個使用者,這種測試反映單使用者執行時候資源開銷情況(IO,CPU,資料轉出和資料庫訪問情況) |
單交易負載測試(Contention Testing) |
這種型別的效能測試目的通過小量使用者併發爭奪資源導致的效能瓶頸(例如鎖、記憶體洩漏等)每次執行識別每個活動的最大、最小、平均響應時間,用來確認在多使用者併發下資料和流程是相互獨立 |
以系統預期最大併發使用者數做為上限對核心交易進行的效能測試。在壓力時間內的交易數量應接近或超過系統全天的交易數量。 |
容量測試 ( Volume Testing) |
這種型別效能測試是檢查系統所能處理的最大業務量。測試過程中採用梯度加壓的方式,不斷增加併發使用者數量,監控響應時間和系統資源變化情況 |
當響應時間曲線出現拐點是,這是就是系統最大的容量。 |
壓力測試/負載測試(Stress / Overload Testing) |
這種型別效能測試目的是檢查系統能夠支援最大使用者併發量 |
測試過程採用梯度加壓的方法,不斷增加併發使用者數量,監控事務響應時間和狀態,資源情況當出現連線數變平,事務出現超時或錯誤時,可確定系統衰退點。 |
穩定性測試(Endurance |
這種型別的效能測試是確認系統持續執行的可靠性,最少要執行24小時,用接近系統容量值的併發使用者數持續執行事務。 因為長時間的測試通常 會佔用大量磁碟空間,所以這種測試過程中需要對週期性臨時資料,如日誌資料要進行及時清理。 |
|
異常測試用例 |
測試在一定併發量下,操作功能上有互斥關係或有鎖機制的場景,檢查是否會導致系統性能問題。 |
|
測試在正常業務量情況下持續執行24小時或48、72小時檢查系統持續的可靠性 |
模型選擇正常業務日的測試模型,併發量為容量測試中效能點平髮量的80% |
2、被測試系統背景分類
編號 |
系統背景 |
測試型別選擇辦法 |
A |
全新系統-該類系統是業務和架構上都是個全新的系統。 |
這類系統通常要做全模型的效能測試包括穩定性、容量、異常等等測試 這類系統在定做效能需求分析階段時需要對系統的涉眾調研來確定業務模型和效能指標。 |
B |
新架構的系統-這種系統通常是在線上已經在運營,新系統採用一種全新的架構來替換原有的線上系統,在業務上支援原有系統的全部業務並無業務擴從。 |
這類系統在做效能測試時候同樣需要考慮進行全面的效能測試型別。 與A類系統的效能測試區別就是效能指標資料的採集來源方式不同,需要對已有系統的運營資料進行採集分析。 |
C |
系統新增加模組-這種需求是針對以後系統增加新的業務或功能模組,架構與原系統基本統一情況下 |
這種系統測試在測試型別選擇上要具有針對性的選擇,測試範圍可根據系統影響進行調整。 |
D |
原有系統bug修改或功能調整,這種系統修改範圍較小,對系統整體結構影響不大。 |
根據修改的影響做選擇性的效能迴歸測試。 |
E |
支撐系統補丁或版本升級(例如作業系統補丁包,作業系統升級,資料庫升級等) |
這種系統在做效能測試更關心繫統穩定效能,其他型別可選。 |
F |
硬體系統升級測試 |
這種型別的測試需要回歸系統容量測試,檢查硬體升級對容量的提升情況。 |
3、系統與測試型別MAP
基準測試 |
單交易負載測試 |
容量測試 |
壓力測試/負載測試 |
穩定性測試 |
異常測試用例 |
|
A系統 |
必選 |
必選 |
必選 |
必選 |
必選 |
可選 |
B系統 |
必選 |
必選 |
必選 |
必選 |
必選 |
可選 |
C系統 |
必選 (影響部分) |
必選 (影響部分) |
必選 |
可選 |
可選 |
可選 |
D系統 |
必選 (影響部分) |
必選 (影響部分) |
可選 |
可選 |
可選 |
可選 |
E系統 |
可選 |
可選 |
可選 |
可選 |
必選 |
可選 |
F系統 |
可選 |
可選 |
必選 |
可選 |
必選 |
可選 |
六、 設計測試模型
1. 業務模型的設計
一個系統的業務模型是通過業務調研獲得,業務模型的正確性反映在兩個方面首先業務選擇的正確性和業務比例的正確性。
首先業務選擇,一個系統可能支援幾百個業務活動(也有叫做交易)但是隻有少數的業務活動非常頻繁,佔總業務量的80%以上,那麼在效能測試時只需關心這些佔了大部分業務量的少量業務上。
其次業務比例,如何精確統計業務的數量是關鍵問題,針對一個全新的系統可能要通過對使用系統的涉眾進行調研,搞清楚他們群體數量,操作行為週期。在通過組合這些資料確定在常規業務日中各種業務佔總業務的比率,同時也要考慮特殊交易日的情況,
例如某一個商務活動或週期性的業務結算日等都是特殊交易日,在特殊交易日時某一類業務量可能突然增高很多那麼在常規業務日的業務比例就不再合適,這點在業務模型上要進行區分。常規業務模型用來測試系統容量,特殊日業務模型要單獨做壓力負載測試場景。
對於已上線運營的系統做業務模型的調研相對簡單,不再需要去調研那麼多的涉眾,只需與運營維護部門進行協調,由他們協助測試需求調研人員提取系統中的歷史資料就可以,那麼在資料選擇上要有些規則,要選取相對長時期的資料比如幾個月,有條件的選取一年資料,取一年中每月平均業務量,選取年度高峰月業務資料,選取月度高峰日業務資料。
2. 測試模型
業務模型是根據系統運營真實資料得來的,真實反映系統運營的業務狀況。測試模型是以業務模型為基礎根據測試需求不同對業務模型調整或不調整納入到測試場景中直接使用。
七、 效能指標分析方法
1. 效能測試指標
業務處理能力:每秒處理交易數量
業務響應性: 每種業務執行響應時間
業務正確率:執行過程中通過事務佔總業務比例
系統資源指標:系統資源佔用率
2. 業務處理能力
業務處理能力是評測系統每秒所能處理的最大業務量,單位是Transaction/sec
計算每秒處理業務量需要兩個關鍵資料,一個是在指定時間內的指定業務量,二是指定的時間段。如何選擇這兩個資料是非常關鍵。通常業務調研階段給的每天平均業務量或者某高峰日最大業務量。如何轉換資料為每秒業務量,通常有演算法:
28規則,這是比較常用的計算方法
例如:一個系統日交易高峰某100000筆交易,系統每天運營8個小時
那麼計算規則是 100000筆*80% / (8*3600*20%) =14筆/秒