解決方案
性能測試服務解決方案

1 方案概述

XX銀行的核心業(yè)務系統(tǒng)是運行多年的系統(tǒng)。隨著業(yè)務量的逐年上升,對安全生產(chǎn)提出了挑戰(zhàn)。因此需要進行一次性能評估測試,達到:第一,當前系統(tǒng)能夠達到的峰值;第二,對于未來3-5年的預期,發(fā)現(xiàn)系統(tǒng)瓶頸,為系統(tǒng)調(diào)優(yōu)做準備。


需要通過性能測試,來發(fā)現(xiàn)當前系統(tǒng)的瓶頸,以確定哪些部分需要進行優(yōu)化,為后期的系統(tǒng)調(diào)優(yōu)提供依據(jù)。

1.1 總體目標
對核心系統(tǒng)進行峰值測試,達到:

第一, 對核心業(yè)務系統(tǒng)進行分階段進行性能測試;

第二, 根據(jù)當前的運行情況,分析性能測試場景、估算吞吐量,然后根據(jù)吞吐量進行性能測試(模擬高峰),看系統(tǒng)是否存在隱藏缺陷。

第三, 在各個性能測試場景之下,持續(xù)對系統(tǒng)加大壓力,測試系統(tǒng)的容量(平均響應時間在可接受范圍內(nèi)),并且發(fā)現(xiàn)系統(tǒng)在達到容量之后是否出現(xiàn)異常,為安全生產(chǎn)提供指標。

第四, 對系統(tǒng)未來3-5年的壓力進行預估(數(shù)據(jù)量和交易量),并根據(jù)預估結(jié)果進行測試,發(fā)現(xiàn)性能瓶頸和需要優(yōu)化的節(jié)點。

第五, 根據(jù)測試情況,提交測試報告和缺陷報告。


1.2 性能測試方法論

1.2.1 性能測試分類
性能測試(Performance Testing):性能測試方法是通過模擬生產(chǎn)運行的業(yè)務壓力量和使用場景組合,測試系統(tǒng)的性能是否滿足生成性能要求。即在特定的運行條件下驗證系統(tǒng)的能力狀況。

負載測試(Load Testing):在給定的測試環(huán)境下,通過在被測系統(tǒng)上不斷增加壓力,直到性能指標超過預定指標或某種資源使用已經(jīng)達到飽和狀態(tài),目的是了解系統(tǒng)性能容量和處理能力極限。負載測試的主要用途是發(fā)現(xiàn)系統(tǒng)性能的拐點,尋找系統(tǒng)能夠支持的用戶、業(yè)務等處理能力的約束。也可以理解為擴展性測試(Scalability Testing),即在固定測試環(huán)境,在其它測試角度(負載方面)不變的情況下,變化一個測試角度并持續(xù)增加壓力,查看系統(tǒng)的性能曲線和處理極限,以及是 否有性能瓶頸存在(拐點)。主要意義是從多個不同的測試角度去探測分析系統(tǒng)的性能變化情況,配合性能調(diào)優(yōu)。測試角度可以是并發(fā)用戶數(shù)、業(yè)務量、數(shù)據(jù)量等不 同方面的負載。

壓力測試(Stress Testing):測試系統(tǒng)在一定飽和狀態(tài)下系統(tǒng)能夠處理的會話能力,以及是否出現(xiàn)錯誤,一般用于穩(wěn)定性測試?梢岳斫鉃橘Y源的極限測試。測試關(guān)注在資源處于飽和或超負荷的情況下,系統(tǒng)能否正常運行,是一種在極端壓力下的穩(wěn)定性測試。其主要意義是通過測試調(diào)優(yōu)保證系統(tǒng)即使在極端的壓力情況下也不會出錯甚至系統(tǒng)崩潰。51Testing軟件測試網(wǎng),g ZA){N%w1N

配置測試(Configuration Testing):通過對被測系統(tǒng)的軟硬件環(huán)境的調(diào)整,了解各種不同環(huán)境對性能影響的程度,從而找到系統(tǒng)各項資源的有分配原則。51Testing軟件測試網(wǎng)m(V:w/_!v主要用于性能調(diào)優(yōu),在經(jīng)過測試獲得了基準測試數(shù)據(jù)后,進行環(huán)境調(diào)整(包括硬件配置、網(wǎng)絡、操作系統(tǒng)、應用服務器、數(shù)據(jù)庫等),再將測試結(jié)果與基準數(shù)據(jù)進行對比,判斷調(diào)整是否達到狀態(tài)。

并發(fā)測試(Concurrency Testing):模擬并發(fā)訪問,測試多用戶并發(fā)訪問同一個應用、模塊、數(shù)據(jù)時是否產(chǎn)生隱藏的并發(fā)問題,如內(nèi)存泄漏、線程鎖、資源爭用問題。測試目的并非為了獲得性能指標,而是為了發(fā)現(xiàn)并發(fā)引起的問題。

可靠性測試(Reliability Testing):通過給系統(tǒng)加載一定的業(yè)務壓力的情況下,讓應用持續(xù)運行一段時間,測試系統(tǒng)在這種條件下是否能夠穩(wěn)定運行。需要和壓力測試區(qū)分開,兩者的測試環(huán)境和測試目的不一樣。壓力測試強調(diào)在資源極限情況下系統(tǒng)是否出錯,可靠性測試強調(diào)在一定的業(yè)務壓力下長時間(如24×7)運行系統(tǒng),關(guān)注系統(tǒng)的運行情況(如資源使用率是否逐漸增加、響應是否是否越來越慢),是否有不穩(wěn)定征兆。


1.2.2 性能測試的一般過程


如上圖,我們把性能測試分成以上階段:

測試計劃階段

規(guī)劃測試過程,編寫測試方案、測試計劃。

準備測試人員,搭建測試環(huán)境。

建立測試模型階段

根據(jù)歷史數(shù)據(jù),構(gòu)建測試模型,包括:壓力模型、業(yè)務模型、數(shù)據(jù)模型、監(jiān)控模型等。

測試模型主要是根據(jù)歷史信息和未來的預期來構(gòu)建。

創(chuàng)建測試場景階段

創(chuàng)建測試模型之后,需要創(chuàng)建不同的測試場景。

根據(jù)每日業(yè)務分布情況和特殊營業(yè)日的業(yè)務分布情況,對峰值曲線進行分析,主要分析曲線的峰值和拐點(曲率發(fā)生大的變化節(jié)點),拆分場景。

創(chuàng)建測試腳本

根據(jù)測試場景和具體的業(yè)務,創(chuàng)建測試腳本。

測試腳本依賴于測試工具。測試腳本需要考慮到被測試系統(tǒng)的響應速度等問題。

執(zhí)行與監(jiān)控

根據(jù)測試場景和加壓方式等,進行測試。

測試分成多個輪次進行。

測試分析

分析測試結(jié)果。在測試過程中,會進行壓力測試、負載測試、性能測試三個部分的測試(本次測試),并且獲得隨著壓力增長而變化的性能監(jiān)控數(shù)據(jù)。

通過對數(shù)據(jù)的分析,獲得測試報告,對發(fā)現(xiàn)的缺陷提交缺陷。


1.2.3 性能測試模型
性能測試模型,分成:壓力模型、業(yè)務模型、數(shù)據(jù)模型、監(jiān)控模型、風險模型等。

壓力模型

壓力模型,是根據(jù)系統(tǒng)的歷史數(shù)據(jù),分形當前系統(tǒng)壓力的方法。

主要是對峰值的交易百分比進行分析處理,獲得模擬的峰值。

業(yè)務模型

根據(jù)不同的業(yè)務品種(交易)來進行分析,分析在不同的場景下,交易的百分比分布情況。

數(shù)據(jù)模型

數(shù)據(jù)模型,主要是根據(jù)當前系統(tǒng)的數(shù)據(jù)量和關(guān)聯(lián)。

數(shù)據(jù)模型需要在測試時候選擇不同的關(guān)聯(lián)數(shù)據(jù)。例如:典型機構(gòu)的選取等。

監(jiān)控模型

對哪些部分進行監(jiān)控,監(jiān)控的數(shù)據(jù)。

風險模型

系統(tǒng)存在哪些風險,也是需要重點關(guān)注的數(shù)據(jù)和瓶頸。

對于重點關(guān)注的數(shù)據(jù)和瓶頸,需要進行重點測試。


2 環(huán)境環(huán)境
2.1 測試環(huán)境
2.1.1 系統(tǒng)結(jié)構(gòu)

說明:

1、 前置系統(tǒng)服務器主要負責柜面渠道、網(wǎng)銀渠道之外的渠道,以及與第三方系統(tǒng)的接口;

2、 核心業(yè)務系統(tǒng)采用AS/400的系統(tǒng);

 

2.1.2 軟件配置

資源名稱/類型

配置

數(shù)據(jù)庫管理系統(tǒng)

DB2(AS400)、未知(前置系統(tǒng))

應用軟件

核心業(yè)務系統(tǒng)、前置系統(tǒng)

客戶端前端展示

柜臺業(yè)務系統(tǒng)

自動測試工具

性能測試工具

測試管理測試工具

N/A

 

3 測試策略
制訂測試策略,首先有對測試進行分析,識別在影響性能測試的風險項。然后根據(jù)風險項來制訂測試策略。


3.1 壓力模型
當前高峰的壓力(下圖為節(jié)日交易數(shù)據(jù)):


取峰的數(shù)據(jù)為日均XX筆/日;

每小時交易量為:  XX筆/小時,高峰時刻的平均吞吐率為:XX筆/秒。


3.1.1 估算模型一
從每日交易的分布情況來看,......。

吞吐率目標:75.9*120%=91筆/秒。

3.1.2 估算模型二
從交易高峰時段來看,按照......來計算:

XX/(7*3600) = XX筆/秒。


3.1.3 峰值估算
根據(jù)兩個模型的估算,我們可以把交易的峰值設置到XX筆/秒。


3.2 測試場景模型分析
3.2.1 一般營業(yè)日
根據(jù)XX銀行的數(shù)據(jù):

3.2.2 節(jié)假日
節(jié)假日的情況如下:


峰值包括2個:

第一,上午10-11點高峰,占總交易量的10.07%;

第二,下午3-4點高峰,占總交易量的11.39%;


3.2.3 場景


場景

場景描述

備注

上午8-9點

 

 

上午10-11點

 

 

下午3-4點

 

 

下午11點

 

 


3.3 測試策略
3.3.1 不同客戶端加壓的影響

如上圖,是系統(tǒng)的拓撲結(jié)構(gòu)。可以看到在性能測試中,可以通過客戶端發(fā)起交易來給系統(tǒng)進行加壓,也可以通過發(fā)送報文的方式來加壓。兩種產(chǎn)生的效果差異在于:

 

比較項目

協(xié)議加壓

客戶端加壓

腳本的復雜

簡單,容易產(chǎn)生大的壓力

復雜,需要更多的客戶端來執(zhí)行。每個客戶端都模擬鼠標、鍵盤的輸入輸出,更真實

VU

不需要很多的虛擬用戶(VU)

需要更多的虛擬用戶(VU)

測試環(huán)境

比較簡單,基本上單機即可

需要更復雜的測試環(huán)境,通過界面操作,每1-3分鐘發(fā)起一個交易

場景真實模擬

需要編寫比較復雜的腳本

能夠模擬更真實的場景(如二段式交易)

客戶端并發(fā)個數(shù)

支持模擬多個并發(fā)

能夠模擬更多的客戶端并發(fā)


3.3.2 測試策略

3.3.3 測試腳本分類


腳本分類

屬性

備注

客戶端加壓腳本

面向操作的腳本

 

客戶端加壓到后臺腳本

面向協(xié)議

 

前置加壓腳本

面向協(xié)議

需要更多的虛擬用戶(VU)

網(wǎng)銀界面加壓腳本

面向操作界面

需要更復雜的測試環(huán)境,通過界面操作,每1-3分鐘發(fā)起一個交易

網(wǎng)銀協(xié)議腳本

面向協(xié)議

能夠模擬更真實的場景(如二段式交易)

3.3.4 測試交易選取

3.3.5 測試數(shù)據(jù)選取
 壓力數(shù)據(jù)是按照的峰值時間段(如9點到10點)的數(shù)據(jù)交易量來進行模擬。

3.4 性能測試執(zhí)行
3.4.1 壓力產(chǎn)生模型
3.4.2 性能測試指標
性能指標的前提:交易成功率超過99.5%。

吞吐率:

并發(fā)數(shù):

平均響應時間:

CPU占用率:

I/O:

數(shù)據(jù)庫(鎖、sql執(zhí)行時間等)數(shù)據(jù)庫是AS/400上的,還需要開發(fā)專門的程序分析性能

軟件產(chǎn)品
澤眾軟件工具使用技術(shù)支持
電話:021-60725088
Email:sales@spasvo.com
QQ:1404189128
培訓、產(chǎn)品購買及試用授權(quán)等事宜
電話:021-60725088
QQ:1404189128
Email: sales@spasvo.com
軟件產(chǎn)品 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 用戶列表 | 網(wǎng)站地圖 | 友情鏈接
滬ICP備07036474 2003-2016 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd