性能測試服務解決方案 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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)做準備。
1.1 總體目標 第一, 對核心業(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 性能測試分類 負載測試(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)定征兆。
測試計劃階段 規(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)的缺陷提交缺陷。
壓力模型 壓力模型,是根據(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ù)和瓶頸,需要進行重點測試。
說明: 1、 前置系統(tǒng)服務器主要負責柜面渠道、網(wǎng)銀渠道之外的渠道,以及與第三方系統(tǒng)的接口; 2、 核心業(yè)務系統(tǒng)采用AS/400的系統(tǒng);
2.1.2 軟件配置
3 測試策略
每小時交易量為: XX筆/小時,高峰時刻的平均吞吐率為:XX筆/秒。
吞吐率目標:75.9*120%=91筆/秒。
3.1.2 估算模型二 XX/(7*3600) = XX筆/秒。
3.2.2 節(jié)假日
第一,上午10-11點高峰,占總交易量的10.07%; 第二,下午3-4點高峰,占總交易量的11.39%;
如上圖,是系統(tǒng)的拓撲結(jié)構(gòu)。可以看到在性能測試中,可以通過客戶端發(fā)起交易來給系統(tǒng)進行加壓,也可以通過發(fā)送報文的方式來加壓。兩種產(chǎn)生的效果差異在于:
3.3.3 測試腳本分類
3.3.4 測試交易選取
3.3.5 測試數(shù)據(jù)選取
3.4 性能測試執(zhí)行 吞吐率: 并發(fā)數(shù): 平均響應時間: CPU占用率: I/O: 數(shù)據(jù)庫(鎖、sql執(zhí)行時間等)數(shù)據(jù)庫是AS/400上的,還需要開發(fā)專門的程序分析性能 |
軟件產(chǎn)品 |
|