1.一種Web系統(tǒng)的性能測試方法,其特征在于,所述方法包括:
在Web系統(tǒng)未滿足用戶的性能需求時,從所述Web系統(tǒng)的應(yīng)用組件中選取一應(yīng)用組件作為測試對象進(jìn)行迭代化的壓力測試;
分析所述應(yīng)用組件在進(jìn)行每次壓力測試時所述Web系統(tǒng)的性能,在確定所述Web系統(tǒng)出現(xiàn)所述應(yīng)用組件在壓力測試下引起的性能瓶頸時,優(yōu)化所述應(yīng)用組件;
在所述應(yīng)用組件結(jié)束所述迭代化的壓力測試時,對所述Web系統(tǒng)進(jìn)行混合場景的壓力測試,判斷所述Web系統(tǒng)是否滿足用戶的性能需求;
在所述Web系統(tǒng)仍不滿足用戶的性能需求時,根據(jù)預(yù)先建立的性能瓶頸分布模型從所述Web系統(tǒng)的應(yīng)用組件中選取下一應(yīng)用組件作為新的測試對象進(jìn)行迭代化的壓力測試。
2.根據(jù)權(quán)利要求1所述的性能測試方法,其特征在于,所述性能瓶頸分布模型通過下述方法建立:
獲取所述Web系統(tǒng)的各應(yīng)用組件以及各應(yīng)用組件之間的通訊方式;
根據(jù)所述Web系統(tǒng)的性能瓶頸的潛在位置將所述Web系統(tǒng)從下向上依次劃分為底層的硬件層性能瓶頸、中間層的系統(tǒng)層性能瓶頸和頂層的應(yīng)用層性能瓶頸,并將所述Web系統(tǒng)的各應(yīng)用組件劃分到相應(yīng)的層級;
根據(jù)所述應(yīng)用組件之間的通訊方式建立所述Web系統(tǒng)的應(yīng)用組件間的業(yè)務(wù)邏輯關(guān)系,從而獲得所述性能瓶頸分布模型。
3.根據(jù)權(quán)利要求2所述的性能測試方法,其特征在于,所述根據(jù)預(yù)先建立的性能瓶頸分布模型從所述Web系統(tǒng)的應(yīng)用組件中選取下一應(yīng)用組件作為新的測試對象進(jìn)行迭代化的壓力測試包括:
確定當(dāng)前應(yīng)用組件在所述性能瓶頸分布模型中的層級,首先判斷所述當(dāng)前應(yīng)用組件所在層級中是否存在與其具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件,若存在,則選取該層級中與所述當(dāng)前應(yīng)用組件具有業(yè)務(wù)邏輯關(guān)系的一應(yīng)用組件作為新的測試對象;
若不存在,當(dāng)所述當(dāng)前應(yīng)用組件處于所述性能瓶頸分布模型中的底層時, 則按照從下向上的方向依次判斷中間層、頂層中是否存在與該當(dāng)前應(yīng)用組件具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件;
當(dāng)所述當(dāng)前應(yīng)用組件處于所述性能瓶頸分布模型中的頂層時,則按照從上向下的方向依次判斷中間層、底層中是否存在與該當(dāng)前應(yīng)用組件具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件;
當(dāng)所述當(dāng)前應(yīng)用組件處于所述性能瓶頸分布模型中的中間層時,先判斷頂層中是否存在與該當(dāng)前應(yīng)用組件具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件,在頂層不存在與其具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件時,再判斷底層是否存在與其具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件。
4.根據(jù)權(quán)利要求1所述的性能測試方法,其特征在于,所述從所述Web系統(tǒng)的應(yīng)用組件中選取一應(yīng)用組件作為測試對象進(jìn)行迭代化的壓力測試包括:
根據(jù)用戶的性能需求,確定所述Web系統(tǒng)的相關(guān)應(yīng)用組件;
根據(jù)所述Web系統(tǒng)的相關(guān)應(yīng)用組件的通訊方式,從所述Web系統(tǒng)的相關(guān)應(yīng)用組件中確定一重點影響的應(yīng)用組件作為測試對象進(jìn)行迭代化的壓力測試。
5.根據(jù)權(quán)利要求4所述的性能測試方法,其特征在于,所述從所述Web系統(tǒng)的相關(guān)應(yīng)用組件中確定一重點影響的應(yīng)用組件作為測試對象進(jìn)行迭代化的壓力測試包括:
選取測試工具,并設(shè)定所述測試對象的壓力測試參數(shù)的初始值、終止值和迭代步長,所述壓力測試參數(shù)包括測試環(huán)境參數(shù)和測試壓力值;
利用所述測試工具,從所述壓力測試參數(shù)的初始值開始對所述測試對象進(jìn)行壓力測試,并收集用于反映所述Web系統(tǒng)性能的測試數(shù)據(jù);
按照所述迭代步長調(diào)整所述壓力測試參數(shù),對所述測試對象進(jìn)行調(diào)整后的壓力測試參數(shù)的壓力測試,并在所述壓力測試參數(shù)值達(dá)到所述壓力測試參數(shù)的終止值時,結(jié)束所述測試對象的壓力測試。
6.根據(jù)權(quán)利要求5所述的性能測試方法,其特征在于,分析所述應(yīng)用組件在進(jìn)行每次壓力測試時所述Web系統(tǒng)的性能具體為:根據(jù)用于反映所述Web系統(tǒng)性能的測試數(shù)據(jù)來分析所述Web系統(tǒng)的性能;
所述方法還包括:所述對所述Web系統(tǒng)進(jìn)行混合場景的壓力測試,判斷所述Web系統(tǒng)是否滿足用戶的性能需求,在所述Web系統(tǒng)已滿足用戶的性能需求時,所述方法結(jié)束。
7.根據(jù)權(quán)利要求5所述的性能測試方法,其特征在于,所述對所述Web系統(tǒng)進(jìn)行混合場景的壓力測試,判斷所述Web系統(tǒng)是否滿足用戶的性能需求包括:
利用所述測試工具對所述Web系統(tǒng)的所有相關(guān)應(yīng)用組件進(jìn)行壓力測試,并收集所述Web系統(tǒng)的性能數(shù)據(jù);
將收集到的所述Web系統(tǒng)的性能數(shù)據(jù)與所述用戶的性能需求進(jìn)行比較,在所述Web系統(tǒng)的性能數(shù)據(jù)達(dá)到所述用戶的性能需求時,判斷所述Web系統(tǒng)滿足用戶的性能需求。
8.一種Web系統(tǒng)的性能測試裝置,其特征在于,所述性能測試裝置包括:
應(yīng)用組件測試單元,用于在所述Web系統(tǒng)未滿足用戶的性能需求時,從所述Web系統(tǒng)的應(yīng)用組件中選取一應(yīng)用組件作為測試對象進(jìn)行迭代化的壓力測試;
應(yīng)用組件優(yōu)化單元,用于分析所述應(yīng)用組件在進(jìn)行每次壓力測試時所述Web系統(tǒng)的性能,在確定所述Web系統(tǒng)出現(xiàn)所述應(yīng)用組件在壓力測試下引起的性能瓶頸時,優(yōu)化所述應(yīng)用組件;
混合場景測試單元,用于在所述應(yīng)用組件結(jié)束所述迭代化的壓力測試時,對所述Web系統(tǒng)進(jìn)行混合場景的壓力測試,判斷所述Web系統(tǒng)是否滿足用戶的性能需求;
應(yīng)用組件選取單元,用于在混合場景測試單元判斷所述Web系統(tǒng)仍不滿足用戶的性能需求時,根據(jù)預(yù)先建立的性能瓶頸分布模型從所述Web系統(tǒng)的 應(yīng)用組件中選取下一應(yīng)用組件作為新的測試對象,并驅(qū)動所述應(yīng)用組件測試單元對新的測試對象進(jìn)行迭代化的壓力測試。
9.根據(jù)權(quán)利要求8所述的性能測試裝置,其特征在于,所述性能瓶頸分布模型通過下述方法建立:
獲取所述Web系統(tǒng)的各應(yīng)用組件以及各應(yīng)用組件之間的通訊方式;
根據(jù)所述Web系統(tǒng)的性能瓶頸的潛在位置將所述Web系統(tǒng)從下向上依次劃分為底層的硬件層性能瓶頸、中間層的系統(tǒng)層性能瓶頸和頂層的應(yīng)用層性能瓶頸,并將所述Web系統(tǒng)的各應(yīng)用組件劃分到相應(yīng)的層級;
根據(jù)所述應(yīng)用組件之間的通訊方式建立所述Web系統(tǒng)的應(yīng)用組件間的業(yè)務(wù)邏輯關(guān)系,從而獲得所述性能瓶頸分布模型。
10.根據(jù)權(quán)利要求8所述的性能測試裝置,其特征在于,所述應(yīng)用組件選取單元包括:
層級確定模塊,用于確定當(dāng)前應(yīng)用組件在所述性能瓶頸分布模型中的層級;
主判斷模塊,用于首先判斷所述當(dāng)前應(yīng)用組件所在層級中是否存在與其具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件,若存在,則選取該層級中與所述當(dāng)前應(yīng)用組件具有業(yè)務(wù)邏輯關(guān)系的一應(yīng)用組件作為新的測試對象;
從判斷模塊,用于在所述主判斷模塊判斷所述當(dāng)前應(yīng)用組件所在層級中不存在與其具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件時,
若所述當(dāng)前應(yīng)用組件處于所述性能瓶頸分布模型中的底層,則按照從下向上的方向依次判斷中間層、頂層中是否存在與該當(dāng)前應(yīng)用組件具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件;
若所述當(dāng)前應(yīng)用組件處于所述性能瓶頸分布模型中的頂層,則按照從上向下的方向依次判斷中間層、底層中是否存在與該當(dāng)前應(yīng)用組件具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件;
若所述當(dāng)前應(yīng)用組件處于所述性能瓶頸分布模型中的中間層,先判斷頂層中是否存在與該當(dāng)前應(yīng)用組件具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件,在頂 層不存在與其具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件時,再判斷底層是否存在與其具有業(yè)務(wù)邏輯關(guān)系的其他應(yīng)用組件。