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

      1 方案概述

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


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

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

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

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

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

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

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


      1.2 性能測試方法論

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

      負(fù)載測試(Load Testing):在給定的測試環(huán)境下,通過在被測系統(tǒng)上不斷增加壓力,直到性能指標(biāo)超過預(yù)定指標(biāo)或某種資源使用已經(jīng)達到飽和狀態(tài),目的是了解系統(tǒng)性能容量和處理能力極限。負(fù)載測試的主要用途是發(fā)現(xiàn)系統(tǒng)性能的拐點,尋找系統(tǒng)能夠支持的用戶、業(yè)務(wù)等處理能力的約束。也可以理解為擴展性測試(Scalability Testing),即在固定測試環(huán)境,在其它測試角度(負(fù)載方面)不變的情況下,變化一個測試角度并持續(xù)增加壓力,查看系統(tǒng)的性能曲線和處理極限,以及是 否有性能瓶頸存在(拐點)。主要意義是從多個不同的測試角度去探測分析系統(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)定性測試?梢岳斫鉃橘Y源的極限測試。測試關(guān)注在資源處于飽和或超負(fù)荷的情況下,系統(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)過測試獲得了基準(zhǔn)測試數(shù)據(jù)后,進行環(huán)境調(diào)整(包括硬件配置、網(wǎng)絡(luò)、操作系統(tǒng)、應(yīng)用服務(wù)器、數(shù)據(jù)庫等),再將測試結(jié)果與基準(zhǔn)數(shù)據(jù)進行對比,判斷調(diào)整是否達到狀態(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ù)運行一段時間,測試系統(tǒng)在這種條件下是否能夠穩(wěn)定運行。需要和壓力測試區(qū)分開,兩者的測試環(huán)境和測試目的不一樣。壓力測試強調(diào)在資源極限情況下系統(tǒng)是否出錯,可靠性測試強調(diào)在一定的業(yè)務(wù)壓力下長時間(如24×7)運行系統(tǒng),關(guān)注系統(tǒng)的運行情況(如資源使用率是否逐漸增加、響應(yīng)是否是否越來越慢),是否有不穩(wěn)定征兆。


      1.2.2 性能測試的一般過程


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

      測試計劃階段

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

      準(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ù)分布情況,對峰值曲線進行分析,主要分析曲線的峰值和拐點(曲率發(fā)生大的變化節(jié)點),拆分場景。

      創(chuàng)建測試腳本

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

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

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

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

      測試分成多個輪次進行。

      測試分析

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

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


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

      壓力模型

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

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

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

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

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

      數(shù)據(jù)模型,主要是根據(jù)當(dāng)前系統(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ù)。

      風(fēng)險模型

      系統(tǒng)存在哪些風(fē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ù)器主要負(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 測試策略
      制訂測試策略,首先有對測試進行分析,識別在影響性能測試的風(fēng)險項。然后根據(jù)風(fē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 估算模型二
      從交易高峰時段來看,按照......來計算:

      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點高峰,占總交易量的10.07%;

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


      3.2.3 場景


      場景

      場景描述

      備注

      上午8-9點

       

       

      上午10-11點

       

       

      下午3-4點

       

       

      下午11點

       

       


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

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

       

      比較項目

      協(xié)議加壓

      客戶端加壓

      腳本的復(fù)雜

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

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

      VU

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

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

      測試環(huán)境

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

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

      場景真實模擬

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

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

      客戶端并發(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é)議

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

      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 性能測試指標(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