本發(fā)明涉及性能測試技術領域,特別涉及一種Web系統(tǒng)的性能測試方法和裝置。
背景技術:
由于Web應用是一系列分布于Wed服務器的程序和多媒體資源的集合,具有分布性、異構性和多用戶的特點,并且Web應用大多為B/S(Browser/Server,瀏覽器/服務器)架構,使用Http協(xié)議,采用客戶/Web服務器/數(shù)據(jù)庫服務器的設計模式,這種多層次結構使得系統(tǒng)出現(xiàn)問題的概率大大增加。因而,Web系統(tǒng)的質量越來越引起用戶的關注,特別是Web性能測試,往往需要深入到軟件開發(fā)、數(shù)掘通信、硬件支持等多個方面,愈加受到人們的關注。
但性能測試難度大、周期長、要求高是一直困擾性能測試人員和開發(fā)人員的問題,雖然有一些工具能夠對系統(tǒng)的某些性能指標有監(jiān)控和跟蹤,但是基于應用系統(tǒng)的業(yè)務繁瑣性、系統(tǒng)架構的技術難度復雜性,用戶行為的不可預見性等諸多因素的影響,Web系統(tǒng)的性能測試正變得比較困難,如果測試方法不當,系統(tǒng)性能測試反而無法反應系統(tǒng)本身的真實情況,有些測試結果反而誤導開發(fā)和測試人員,致使系統(tǒng)的開發(fā)和測試浪費大量的時間和金錢,影響了產品的發(fā)布,最終影響到了用戶的體驗。
技術實現(xiàn)要素:
鑒于上述問題,本發(fā)明提供一種Web系統(tǒng)的性能測試方法和裝置,以解決現(xiàn)有技術Web系統(tǒng)性能測試周期長、成本高、測試效率低的問題。
為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的:
一方面,本發(fā)明提供了一種Web系統(tǒng)的性能測試方法,所述方法包括:
在Web系統(tǒng)未滿足用戶的性能需求時,從Web系統(tǒng)的應用組件中選取 一應用組件作為測試對象進行迭代化的壓力測試;
分析應用組件在進行每次壓力測試時Web系統(tǒng)的性能,在確定Web系統(tǒng)出現(xiàn)所述應用組件在壓力測試下引起的性能瓶頸時,優(yōu)化應用組件;
在應用組件結束所述迭代化的壓力測試時,對Web系統(tǒng)進行混合場景的壓力測試,判斷Web系統(tǒng)是否滿足用戶的性能需求;
在Web系統(tǒng)仍不滿足用戶的性能需求時,根據(jù)預先建立的性能瓶頸分布模型從Web系統(tǒng)的應用組件中選取下一應用組件作為新的測試對象進行迭代化的壓力測試。
優(yōu)選地,所述性能瓶頸分布模型通過下述方法建立:
獲取所述Web系統(tǒng)的各應用組件以及各應用組件之間的通訊方式;
根據(jù)所述Web系統(tǒng)的性能瓶頸的潛在位置將所述Web系統(tǒng)從下向上依次劃分為底層的硬件層性能瓶頸、中間層的系統(tǒng)層性能瓶頸和頂層的應用層性能瓶頸,并將所述Web系統(tǒng)的各應用組件劃分到相應的層級;
根據(jù)所述應用組件之間的通訊方式建立所述Web系統(tǒng)的應用組件間的業(yè)務邏輯關系,從而獲得所述性能瓶頸分布模型。
進一步優(yōu)選地,所述根據(jù)預先建立的性能瓶頸分布模型從所述Web系統(tǒng)的應用組件中選取下一應用組件作為新的測試對象進行迭代化的壓力測試包括:
確定當前應用組件在所述性能瓶頸分布模型中的層級,首先判斷所述當前應用組件所在層級中是否存在與其具有業(yè)務邏輯關系的其他應用組件,若存在,則選取該層級中與所述當前應用組件具有業(yè)務邏輯關系的一應用組件作為新的測試對象;
若不存在,當所述當前應用組件處于所述性能瓶頸分布模型中的底層時,則按照從下向上的方向依次判斷中間層、頂層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件;
當所述當前應用組件處于所述性能瓶頸分布模型中的頂層時,則按照從上向下的方向依次判斷中間層、底層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件;
當所述當前應用組件處于所述性能瓶頸分布模型中的中間層時,先判斷 頂層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件,在頂層不存在與其具有業(yè)務邏輯關系的其他應用組件時,再判斷底層是否存在與其具有業(yè)務邏輯關系的其他應用組件。
優(yōu)選地,所述從所述Web系統(tǒng)的應用組件中選取一應用組件作為測試對象進行迭代化的壓力測試包括:
根據(jù)用戶的性能需求,確定所述Web系統(tǒng)的相關應用組件;
根據(jù)所述Web系統(tǒng)的相關應用組件的通訊方式,從所述Web系統(tǒng)的相關應用組件中確定一重點影響的應用組件作為測試對象進行迭代化的壓力測試。
進一步優(yōu)選地,所述從所述Web系統(tǒng)的相關應用組件中確定一重點影響的應用組件作為測試對象進行迭代化的壓力測試包括:
選取測試工具,并設定所述測試對象的壓力測試參數(shù)的初始值、終止值和迭代步長,所述壓力測試參數(shù)包括測試環(huán)境參數(shù)和測試壓力值;
利用所述測試工具,從所述壓力測試參數(shù)的初始值開始對所述測試對象進行壓力測試,并收集用于反映所述Web系統(tǒng)性能的測試數(shù)據(jù);
按照所述迭代步長調整所述壓力測試參數(shù),對所述測試對象進行調整后的壓力測試參數(shù)的壓力測試,并在所述壓力測試參數(shù)值達到所述壓力測試參數(shù)的終止值時,結束所述測試對象的壓力測試。
優(yōu)選地,分析所述應用組件在進行每次壓力測試時所述Web系統(tǒng)的性能具體為:根據(jù)用于反映所述Web系統(tǒng)性能的測試數(shù)據(jù)來分析所述Web系統(tǒng)的性能;
所述方法還包括:所述對所述Web系統(tǒng)進行混合場景的壓力測試,判斷所述Web系統(tǒng)是否滿足用戶的性能需求,在所述Web系統(tǒng)已滿足用戶的性能需求時,所述方法結束。
優(yōu)選地,所述對所述Web系統(tǒng)進行混合場景的壓力測試,判斷所述Web系統(tǒng)是否滿足用戶的性能需求包括:
利用所述測試工具對所述Web系統(tǒng)的所有相關應用組件進行壓力測試,并收集所述Web系統(tǒng)的性能數(shù)據(jù);
將收集到的所述Web系統(tǒng)的性能數(shù)據(jù)與所述用戶的性能需求進行比較, 在所述Web系統(tǒng)的性能數(shù)據(jù)達到所述用戶的性能需求時,判斷所述Web系統(tǒng)滿足用戶的性能需求。
另一方面,本發(fā)明提供了一種Web系統(tǒng)的性能測試裝置,所述性能測試裝置包括:
應用組件測試單元,用于在Web系統(tǒng)未滿足用戶的性能需求時,從Web系統(tǒng)的應用組件中選取一應用組件作為測試對象進行迭代化的壓力測試;
應用組件優(yōu)化單元,用于分析應用組件在進行每次壓力測試時Web系統(tǒng)的性能,在確定Web系統(tǒng)出現(xiàn)性能瓶頸時,優(yōu)化應用組件;
混合場景測試單元,用于在應用組件結束迭代化的壓力測試時,對Web系統(tǒng)進行混合場景的壓力測試,判斷Web系統(tǒng)是否滿足用戶的性能需求;
應用組件選取單元,用于在混合場景測試單元判斷Web系統(tǒng)仍不滿足用戶的性能需求時,根據(jù)預先建立的性能瓶頸分布模型從Web系統(tǒng)的應用組件中選取下一應用組件作為新的測試對象,并驅動應用組件測試單元對新的測試對象進行迭代化的壓力測試。
優(yōu)選地,所述性能瓶頸分布模型通過下述方法建立:
獲取所述Web系統(tǒng)的各應用組件以及各應用組件之間的通訊方式;
根據(jù)所述Web系統(tǒng)的性能瓶頸的潛在位置將所述Web系統(tǒng)從下向上依次劃分為底層的硬件層性能瓶頸、中間層的系統(tǒng)層性能瓶頸和頂層的應用層性能瓶頸,并將所述Web系統(tǒng)的各應用組件劃分到相應的層級;
根據(jù)所述應用組件之間的通訊方式建立所述Web系統(tǒng)的應用組件間的業(yè)務邏輯關系,從而獲得所述性能瓶頸分布模型。
優(yōu)選地,所述應用組件選取單元包括:
層級確定模塊,用于確定當前應用組件在所述性能瓶頸分布模型中的層級;
主判斷模塊,用于首先判斷所述當前應用組件所在層級中是否存在與其具有業(yè)務邏輯關系的其他應用組件,若存在,則選取該層級中與所述當前應用組件具有業(yè)務邏輯關系的一應用組件作為新的測試對象;
從判斷模塊,用于在所述主判斷模塊判斷所述當前應用組件所在層級中不存在與其具有業(yè)務邏輯關系的其他應用組件時,
若所述當前應用組件處于所述性能瓶頸分布模型中的底層,則按照從下向上的方向依次判斷中間層、頂層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件;
若所述當前應用組件處于所述性能瓶頸分布模型中的頂層,則按照從上向下的方向依次判斷中間層、底層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件;
若所述當前應用組件處于所述性能瓶頸分布模型中的中間層,先判斷頂層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件,在頂層不存在與其具有業(yè)務邏輯關系的其他應用組件時,再判斷底層是否存在與其具有業(yè)務邏輯關系的其他應用組件。
本發(fā)明實施例的有益效果是:本發(fā)明在Web系統(tǒng)的性能測試過程中,每次測試只測試相關應用組件中的一個,在測試過程中若發(fā)現(xiàn)Web系統(tǒng)出現(xiàn)性能瓶頸,則通過對應用組件進行優(yōu)化來解決出現(xiàn)的性能瓶頸,在該應用組件完成其壓力測試后,再根據(jù)性能瓶頸分布模型選取下一應用組件作為新的測試對象,繼續(xù)該新的測試對象的壓力測試,從而實現(xiàn)了Web系統(tǒng)性能測試的組件化測試方法,能夠在較短時間內確定性能瓶頸,縮短性能測試周期,有效地減少測試工程師的工作量,提高性能測試的測試效率;以及在每個應用組件的壓力測試過程中,通過設定相應的壓力測試參數(shù),測試應用組件在不同測試環(huán)境下的性能表現(xiàn),從而實現(xiàn)Web系統(tǒng)性能測試的迭代化測試方法,以提高定位性能瓶頸的準確性。
附圖說明
圖1為本發(fā)明實施例一提供的Web系統(tǒng)的性能測試方法流程圖;
圖2為本發(fā)明實施例一提供的Web系統(tǒng)性能瓶頸分布模型示意圖;
圖3為本發(fā)明實施例二提供的Web系統(tǒng)的性能測試方法的測試流程圖;
圖4為本發(fā)明實施例三提供的Web系統(tǒng)的性能測試裝置結構示意圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
實施例一:
圖1為本實施例提供的Web系統(tǒng)的性能測試方法流程圖,如圖1所示,圖1中的方法包括:
S110,在Web系統(tǒng)未滿足用戶的性能需求時,從Web系統(tǒng)的應用組件中選取一應用組件作為測試對象進行迭代化的壓力測試。
由于每次性能測試所付出的代價與測試過程中對Web系統(tǒng)施加的壓力有直接關系,因此本實施例優(yōu)選地采用迭代化的測試方法測試Web系統(tǒng)在不同壓力下的性能表現(xiàn)。
在步驟S110中,從Web系統(tǒng)的應用組件中選取一應用組件作為測試對象進行迭代化的壓力測試具體為:
根據(jù)用戶的性能需求,確定Web系統(tǒng)的相關應用組件;
根據(jù)Web系統(tǒng)的相關應用組件的通訊方式,從Web系統(tǒng)的相關應用組件中確定一重點影響的應用組件作為測試對象進行迭代化的壓力測試。
本實施例優(yōu)選地通過下述迭代方式對重點影響的應用組件進行壓力測試:
選取測試工具,并設定測試對象的壓力測試參數(shù)的初始值、終止值和迭代步長,其中壓力測試參數(shù)包括測試環(huán)境參數(shù)和測試壓力值;
利用測試工具,從壓力測試參數(shù)的初始值開始對測試對象進行壓力測試,并收集用于反映Web系統(tǒng)性能的測試數(shù)據(jù);
按照迭代步長調整壓力測試參數(shù),對測試對象進行調整后的壓力測試參數(shù)的壓力測試;
在壓力測試參數(shù)值達到壓力測試參數(shù)的終止值時,結束測試對象的壓力測試。
S120,分析該應用組件在進行每次壓力測試時Web系統(tǒng)的性能,在確定Web系統(tǒng)出現(xiàn)該應用組件在壓力測試下引起的性能瓶頸時,優(yōu)化應用組件。
其中,在對選取的應用組件進行優(yōu)化時,若選取的應用組件為硬件,優(yōu)選地優(yōu)化該應用組件的配置參數(shù);若選取的應用組件為軟件,優(yōu)選地優(yōu)化該應用組件的代碼邏輯,優(yōu)選地,每次壓力測試后若出現(xiàn)性能瓶頸則優(yōu)化該組件以消除該次壓力測試出現(xiàn)的性能瓶頸,具體可以通過再次進行相同的壓力 參數(shù)來進行一次壓力測試確定是否消除性能瓶頸。
當在步驟S110中收集每次壓力測試的測試數(shù)據(jù)時,則步驟S120中分析應用組件在進行每次壓力測試時Web系統(tǒng)的性能數(shù)據(jù)具體為根據(jù)用于反映Web系統(tǒng)性能的測試數(shù)據(jù)來分析Web系統(tǒng)的性能。
S130,在該應用組件結束迭代化的壓力測試時,對Web系統(tǒng)進行混合場景的壓力測試,判斷Web系統(tǒng)是否滿足用戶的性能需求。
本步驟優(yōu)選地通過下述方式對Web系統(tǒng)進行混合場景的壓力測試:
利用測試工具對Web系統(tǒng)的所有相關應用組件進行壓力測試,并收集Web系統(tǒng)的性能數(shù)據(jù);
將收集到的Web系統(tǒng)的性能數(shù)據(jù)與所述用戶的性能需求進行比較,在Web系統(tǒng)的性能數(shù)據(jù)達到所述用戶的性能需求時,判斷Web系統(tǒng)滿足用戶的性能需求。
需要指出的是,本步驟中所述的該應用組件結束迭代化的壓力測試時應應理解為:若在對應用組件進行迭代化的壓力測試過程中,Web系統(tǒng)未出現(xiàn)性能瓶頸,則在達到迭代化測試的終止條件時即壓力測試參數(shù)滿足用戶需求的上限值時,結束該應用組件的迭代化測試;若在對應用組件進行迭代化的壓力測試過程中,Web系統(tǒng)出現(xiàn)該應用組件在壓力測試下引起的性能瓶頸,則對該應用組件進行優(yōu)化消除該性能瓶頸,在徹底優(yōu)化消除由該組件引起的性能瓶頸后結束該應用組件的迭代化測試。
S140,在Web系統(tǒng)仍不滿足用戶的性能需求時,根據(jù)預先建立的性能瓶頸分布模型從Web系統(tǒng)的應用組件中選取下一應用組件作為新的測試對象進行迭代化的壓力測試。
本實施例通過在測試過程中,每次測試只測試相關應用組件中的一個,在測試過程中若發(fā)現(xiàn)Web系統(tǒng)出現(xiàn)所述應用組件在壓力測試下引起的性能瓶頸,則通過對應用組件進行優(yōu)化來解決出現(xiàn)的性能瓶頸,在該應用組件完成其壓力測試后,再根據(jù)性能瓶頸分布模型選取下一應用組件作為新的測試對象,繼續(xù)該新的測試對象的壓力測試,從而實現(xiàn)了Web系統(tǒng)性能測試的組件化測試方法,能夠在較短時間內確定性能瓶頸,縮短性能測試周期,有效地減少測試工程師的工作量,提高性能測試的測試效率;以及在每個應用組 件的壓力測試過程中,通過設定相應的壓力測試參數(shù),測試應用組件在不同測試環(huán)境下的性能表現(xiàn),從而實現(xiàn)Web系統(tǒng)性能測試的迭代化測試方法,以提高定位性能瓶頸的準確性。
在本實施例的一個優(yōu)選方案中,步驟S140中的性能瓶頸分布模型通過下述方法建立:
獲取Web系統(tǒng)的各應用組件以及各應用組件之間的通訊方式;
根據(jù)Web系統(tǒng)的性能瓶頸的潛在位置將Web系統(tǒng)從下向上依次劃分為底層的硬件層性能瓶頸、中間層的系統(tǒng)層性能瓶頸和頂層的應用層性能瓶頸,并將Web系統(tǒng)的各應用組件劃分到相應的層級;
根據(jù)應用組件之間的通訊方式建立Web系統(tǒng)的應用組件間的業(yè)務邏輯關系,從而獲得上述性能瓶頸分布模型。
其中,底層一般包括交換機、路由器等網(wǎng)絡硬件、處理器、內存、磁盤等應用組件的性能瓶頸;中間層的系統(tǒng)層性能瓶頸一般包括服務器操作系統(tǒng)、應用服務器、數(shù)據(jù)庫服務器、中間件等應用組件的性能瓶頸;頂層的應用層性能瓶頸一般包括架構設計缺陷、程序設計缺陷、數(shù)據(jù)庫設計缺陷等。
則步驟S140中根據(jù)預先建立的性能瓶頸分布模型從Web系統(tǒng)的應用組件中選取下一應用組件作為新的測試對象進行迭代化的壓力測試具體為:
確定當前應用組件在所述性能瓶頸分布模型中的層級,首先判斷當前應用組件所在層級中是否存在與其具有業(yè)務邏輯關系的其他應用組件,若存在,則選取該層級中與當前應用組件具有業(yè)務邏輯關系的一應用組件作為新的測試對象;
若不存在,當所述當前應用組件處于性能瓶頸分布模型中的底層時,則按照從下向上的方向依次判斷中間層、頂層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件;
當所述當前應用組件處于性能瓶頸分布模型中的頂層時,則按照從上向下的方向依次判斷中間層、底層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件;
當所述當前應用組件處于性能瓶頸分布模型中的中間層時,先判斷頂層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件,在頂層不 存在與其具有業(yè)務邏輯關系的其他應用組件時,再判斷底層是否存在與其具有業(yè)務邏輯關系的其他應用組件。
本優(yōu)選方案通過預先構建的性能瓶頸分布模型選取下一應用組件作為新的測試對象,在Web系統(tǒng)性能測試過程中,逐層、順序地定位性能瓶頸,避免由于層與層之間的應用組件的相互影響造成的混亂,從而能夠快速、高效、準確地定位性能瓶頸。
如圖2所示,圖2為本實施例提供的Web系統(tǒng)性能瓶頸分布模型示意圖,圖2中兩個應用組件之間的連線表示該兩個應用組件具有業(yè)務邏輯關系。
本實施依據(jù)系統(tǒng)由底層到頂層的方向,即從下向上的方向,將系統(tǒng)性能瓶頸的潛在位置劃分為三個層級,底層為硬件層性能瓶頸,中間層為系統(tǒng)層性能瓶頸,頂層為應用層性能瓶頸。
若假設中間層的數(shù)據(jù)庫為該Web系統(tǒng)的重點影響的應用組件:
在該Web系統(tǒng)的性能測試過程中,若在對重點影響的應用組件進行壓力測試時,發(fā)現(xiàn)該Web系統(tǒng)發(fā)生由該重點影響的應用組件引起的性能瓶頸,并且在重點影響的應用組件優(yōu)化消除該性能瓶頸后,該web系統(tǒng)仍不能滿足用戶性能需求,則根據(jù)性能瓶頸分布模型在中間層選擇一個與該數(shù)據(jù)庫具有業(yè)務邏輯關系的應用組件作為新的測試對象,如2所示,可以選取應用服務器A作為新的測試對象;在中間層的相關應用組件都優(yōu)化后,發(fā)現(xiàn)該Web系統(tǒng)不能滿足用戶性能需求,則先在頂層中選取與中間層的相關應用組件具有業(yè)務邏輯關系的應用組件作為新的測試對象;在頂層中的相關應用組件都優(yōu)化后,該Web系統(tǒng)仍不能滿足用戶性能需求時,最后從底層選取具有業(yè)務邏輯關系的應用組件作為測試對象。
若假設頂層的應用系統(tǒng)為該Web系統(tǒng)的重點影響的應用組件:
在該Web系統(tǒng)的性能測試過程中,若在對該重點影響的應用組件進行壓力測試時,發(fā)現(xiàn)該Web系統(tǒng)發(fā)生由該重點影響的應用組件引起的性能瓶頸,并且在重點影響的應用組件優(yōu)化消除該性能瓶頸后,該Web系統(tǒng)仍不能滿足用戶性能需求,則根據(jù)性能瓶頸分布模型在頂層選擇一個與該應用系統(tǒng)具有業(yè)務邏輯關系的應用組件作為新的測試對象,如2所示,可以選取業(yè)務系統(tǒng)作為新的測試對象;在頂層的相關應用組件都優(yōu)化后,發(fā)現(xiàn)該Web系統(tǒng)不能 滿足用戶性能需求,則先在中間層中選取與頂層的相關應用組件具有業(yè)務邏輯關系的應用組件作為新的測試對象;在中間層中的相關應用組件都優(yōu)化后,該Web系統(tǒng)仍不能滿足用戶性能需求時,最后從底層選取具有業(yè)務邏輯關系的應用組件作為測試對象。
若假設底層的處理器為該Web系統(tǒng)的重點影響的應用組件:
在該Web系統(tǒng)的性能測試過程中,若在對該重點影響的應用組件進行壓力測試時,發(fā)現(xiàn)該Web系統(tǒng)發(fā)生由該重點影響的應用組件引起的性能瓶頸,并且在重點影響的應用組件優(yōu)化消除該性能瓶頸后,該Web系統(tǒng)仍不能滿足用戶性能需求,則根據(jù)性能瓶頸分布模型在中間層選擇一個與該處理器具有業(yè)務邏輯關系的應用組件作為新的測試對象,如2所示,可以選取存儲設備作為新的測試對象;在底層的相關應用組件都優(yōu)化后,發(fā)現(xiàn)該Web系統(tǒng)仍不能滿足用戶性能需求,則先在中間層中選取與底層的相關應用組件具有業(yè)務邏輯關系的應用組件作為新的測試對象;在中間層中的相關應用組件都優(yōu)化后,該Web系統(tǒng)仍不能滿足用戶性能需求時,最后從頂層選取具有業(yè)務邏輯關系的應用組件作為測試對象。
實施例二:
本實施例提供了一種對Web系統(tǒng)進行性能測試的方法。在本實施例中,假設測試人員在對Web系統(tǒng)進行綜合測試時,發(fā)現(xiàn)該Web系統(tǒng)不滿足用戶的性能需求,繼而按照圖3中所示的方法進行下述性能測試。
如圖3所示,圖3為本實施例提供的Web系統(tǒng)的性能測試方法的測試流程圖,該性能測試方法的具體流程如下:
S310,從Web系統(tǒng)的相關應用組件中選取一應用組件作為測試對象,并設定該應用組件的壓力測試參數(shù)的初始值、終止值和迭代步長。其中,壓力測試參數(shù)包括測試環(huán)境參數(shù)和測試壓力值。
需要說明的是,本實施例優(yōu)選地將Web系統(tǒng)的重點影響應用組件作為第一個測試對象,以便于節(jié)省測試流程。
S320,利用測試工具對測試對象進行壓力測試。
需要說明的是,本實施例從壓力測試參數(shù)的初始值開始對測試對象進行壓力測試。
S330,收集用于反映Web系統(tǒng)性能的測試數(shù)據(jù)。
S340,分析收集到的用于反映Web系統(tǒng)性能的測試數(shù)據(jù),判斷Web系統(tǒng)是否出現(xiàn)性能瓶頸,若出現(xiàn)性能瓶頸則執(zhí)行步驟S341,否則執(zhí)行步驟S342。
S341,對當前的應用組件進行優(yōu)化消除性能瓶頸,并執(zhí)行步驟S350。
其中,若當前的應用組件為硬件,優(yōu)選地優(yōu)化該應用組件的配置參數(shù);若當前的應用組件為軟件,優(yōu)選地優(yōu)化該應用組件的代碼邏輯。
S342,判斷當前壓力測試參數(shù)值是否達到壓力測試參數(shù)的終止值,在當前壓力測試參數(shù)值未達到壓力測試參數(shù)的終止值時,執(zhí)行步驟S343,否則執(zhí)行步驟S350。
S343,按照迭代步長調整壓力測試參數(shù),返回步驟S320。
S350,對Web系統(tǒng)進行混合場景的壓力測試。
S360,判斷Web系統(tǒng)是否滿足用戶的性能需求,在Web系統(tǒng)不滿足用戶的性能需求時,執(zhí)行步驟S370,否則執(zhí)行步驟S380。
S370,根據(jù)預先建立的性能瓶頸分布模型從所述Web系統(tǒng)的應用組件中選取下一應用組件作為新的測試對象,并返回S320對新的測試對象進行迭代化的壓力測試。
S380,結束Web系統(tǒng)的性能測試。
實施例三:
基于與實施例一相同的設計構思,本實施例提供了一種Web系統(tǒng)的性能測試裝置。
圖4為本實施例提供的Web系統(tǒng)的性能測試裝置結構示意圖,如圖4所示,圖4中的性能測試裝置包括:應用組件測試單元41、應用組件優(yōu)化單元42、混合場景測試單元43和應用組件選取單元44。
應用組件測試單元41,用于在Web系統(tǒng)未滿足用戶的性能需求時,從Web系統(tǒng)的應用組件中選取一應用組件作為測試對象進行迭代化的壓力測試。
應用組件優(yōu)化單元42,用于分析應用組件每次壓力測試時Web系統(tǒng)的性能,在確定Web系統(tǒng)出現(xiàn)所述應用組件在壓力測試下引起的性能瓶頸時,優(yōu)化應用組件。
混合場景測試單元43,用于在應用組件結束迭代化的壓力測試時,對Web系統(tǒng)進行混合場景的壓力測試,判斷Web系統(tǒng)是否滿足用戶的性能需求。
應用組件選取單元44,用于在混合場景測試單元43判斷Web系統(tǒng)仍不滿足用戶的性能需求時,根據(jù)預先建立的性能瓶頸分布模型從Web系統(tǒng)的應用組件中選取下一應用組件作為新的測試對象,并驅動應用組件測試單元41對新的測試對象進行迭代化的壓力測試。
在本實施例的一個優(yōu)選方案中,性能瓶頸分布模型通過下述方法建立:
獲取Web系統(tǒng)的各應用組件以及各應用組件之間的通訊方式;
根據(jù)Web系統(tǒng)的性能瓶頸的潛在位置將Web系統(tǒng)從下向上依次劃分為底層的硬件層性能瓶頸、中間層的系統(tǒng)層性能瓶頸和頂層的應用層性能瓶頸,并將Web系統(tǒng)的各應用組件劃分到相應的層級;
根據(jù)應用組件之間的通訊方式建立所述Web系統(tǒng)的應用組件間的業(yè)務邏輯關系,從而獲得性能瓶頸分布模型。
則應用組件選取單元44包括:
層級確定模塊,用于確定當前應用組件在性能瓶頸分布模型中的層級;
主判斷模塊,用于首先判斷當前應用組件所在層級中是否存在與其具有業(yè)務邏輯關系的其他應用組件,若存在,則選取該層級中與當前應用組件具有業(yè)務邏輯關系的一應用組件作為新的測試對象;
從判斷模塊,用于在主判斷模塊判斷所述當前應用組件所在層級中不存在與其具有業(yè)務邏輯關系的其他應用組件時,
若當前應用組件處于所述性能瓶頸分布模型中的底層,則按照從下向上的方向依次判斷中間層、頂層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件;
若當前應用組件處于性能瓶頸分布模型中的頂層,則按照從上向下的方向依次判斷中間層、底層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件;
若當前應用組件處于所述性能瓶頸分布模型中的中間層,先判斷頂層中是否存在與該當前應用組件具有業(yè)務邏輯關系的其他應用組件,在頂層不存在與其具有業(yè)務邏輯關系的其他應用組件時,再判斷底層是否存在與其具 有業(yè)務邏輯關系的其他應用組件。
本實施例的各單元的具體工作方式可以參見本發(fā)明實施例一的具體內容,在此不再贅述。
綜上所述,本發(fā)明公開了一種Web系統(tǒng)的性能測試方法和裝置,在Web系統(tǒng)的性能測試過程中,每次測試只測試相關應用組件中的一個,在測試過程中若發(fā)現(xiàn)Web系統(tǒng)出現(xiàn)所述應用組件在壓力測試下引起的性能瓶頸,則通過對應用組件進行優(yōu)化來解決出現(xiàn)的性能瓶頸,在該應用組件完成其壓力測試后,再根據(jù)性能瓶頸分布模型選取下一應用組件作為新的測試對象,繼續(xù)該新的測試對象的壓力測試,從而實現(xiàn)了Web系統(tǒng)性能測試的組件化測試方法,能夠在較短時間內確定性能瓶頸,縮短性能測試周期,有效地減少測試工程師的工作量,提高性能測試的測試效率;以及在每個應用組件的壓力測試過程中,通過設定相應的壓力測試參數(shù),測試應用組件在不同測試環(huán)境下的性能表現(xiàn),從而實現(xiàn)Web系統(tǒng)性能測試的迭代化測試方法,以提高定位性能瓶頸的準確性。。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內。