解決方案
性能測試服務(wù)解決方案

1 方案概述

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


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

1.1 總體目標(biāo)
對核心系統(tǒng)進(jìn)行峰值測試,達(dá)到:

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

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

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

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

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


1.2 性能測試方法論

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

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

壓力測試(Stress Testing):測試系統(tǒng)在一定飽和狀態(tài)下系統(tǒng)能夠處理的會話能力,以及是否出現(xiàn)錯誤,一般用于穩(wěn)定性測試。可以理解為資源的極限測試。測試關(guān)注在資源處于飽和或超負(fù)荷的情況下,系統(tǒng)能否正常運(yùn)行,是一種在極端壓力下的穩(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)各項(xiàng)資源的有分配原則。51Testing軟件測試網(wǎng)m(V:w/_!v主要用于性能調(diào)優(yōu),在經(jīng)過測試獲得了基準(zhǔn)測試數(shù)據(jù)后,進(jìn)行環(huán)境調(diào)整(包括硬件配置、網(wǎng)絡(luò)、操作系統(tǒng)、應(yīng)用服務(wù)器、數(shù)據(jù)庫等),再將測試結(jié)果與基準(zhǔn)數(shù)據(jù)進(jìn)行對比,判斷調(diào)整是否達(dá)到狀態(tài)。

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

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


1.2.2 性能測試的一般過程


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

測試計(jì)劃階段

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

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

建立測試模型階段

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

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

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

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

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

創(chuàng)建測試腳本

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

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

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

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

測試分成多個輪次進(jìn)行。

測試分析

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

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


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

壓力模型

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

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

業(yè)務(wù)模型

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

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

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

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

監(jiān)控模型

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

風(fēng)險(xiǎn)模型

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

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


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

說明:

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

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

 

2.1.2 軟件配置

資源名稱/類型

配置

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

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

應(yīng)用軟件

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

客戶端前端展示

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

自動測試工具

性能測試工具

測試管理測試工具

N/A

 

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


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


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

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


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

吞吐率目標(biāo):75.9*120%=91筆/秒。

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

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


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


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

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


峰值包括2個:

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

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


3.2.3 場景


場景

場景描述

備注

上午8-9點(diǎn)

 

 

上午10-11點(diǎn)

 

 

下午3-4點(diǎn)

 

 

下午11點(diǎn)

 

 


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

如上圖,是系統(tǒng)的拓?fù)浣Y(jié)構(gòu)?梢钥吹皆谛阅軠y試中,可以通過客戶端發(fā)起交易來給系統(tǒng)進(jìn)行加壓,也可以通過發(fā)送報(bào)文的方式來加壓。兩種產(chǎn)生的效果差異在于:

 

比較項(xiàng)目

協(xié)議加壓

客戶端加壓

腳本的復(fù)雜

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

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

VU

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

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

測試環(huán)境

比較簡單,基本上單機(jī)即可

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

場景真實(shí)模擬

需要編寫比較復(fù)雜的腳本

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

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

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

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


3.3.2 測試策略

3.3.3 測試腳本分類


腳本分類

屬性

備注

客戶端加壓腳本

面向操作的腳本

 

客戶端加壓到后臺腳本

面向協(xié)議

 

前置加壓腳本

面向協(xié)議

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

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

面向操作界面

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

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

面向協(xié)議

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

3.3.4 測試交易選取

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

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

吞吐率:

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

平均響應(yīng)時間:

CPU占用率:

I/O:

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

軟件產(chǎn)品
澤眾軟件工具使用技術(shù)支持
電話:021-60725088
Email:sales@spasvo.com
QQ:1404189128
培訓(xùn)、產(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