一種設(shè)備性能測試方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種設(shè)備性能測試方法。本發(fā)明同時還涉及 一種設(shè)備性能測試裝置
【背景技術(shù)】
[0002] 通常面向多用戶的web應(yīng)用系統(tǒng)在搭建完成并上線之前,需要獲取到其所能夠承 載的訪問量,響應(yīng)速度、容錯能力等性能指標(biāo)。一般通過性能測試工具進(jìn)行壓力測試,從而 獲取web應(yīng)用系統(tǒng)的運行狀態(tài)和響應(yīng)時間等性能指標(biāo)。
[0003] 性能測試工具的主要作用是通過模擬生產(chǎn)環(huán)境中的真實業(yè)務(wù)操作,對被測試系統(tǒng) 實行壓力負(fù)載測試,監(jiān)視被測試系統(tǒng)在不同業(yè)務(wù)、不同壓力性能下的性能表現(xiàn),找出潛在的 性能瓶頸進(jìn)行分析、優(yōu)化。
[0004] 常用的系統(tǒng)性能測試工具,在模擬客戶端行為的同時,記錄了客戶端并發(fā)請求數(shù)、 響應(yīng)時延等性能指標(biāo)。但在現(xiàn)有的測試條件下,測試工具和業(yè)務(wù)系統(tǒng)的分布在不同主機(jī)上, 業(yè)務(wù)系統(tǒng)的主機(jī)性能通過H方的監(jiān)控,業(yè)務(wù)主機(jī)狀態(tài)的變化不能直接反饋給測試客戶端, 常會出現(xiàn)因客戶端請求過多,web應(yīng)用主機(jī)的如CPU占用過高,連接數(shù)過多等有限資源不足 而使系統(tǒng)過載崩潰,只能手工重啟主機(jī),此時H方監(jiān)控也會受到影響,無法及時定位系統(tǒng)崩 潰時導(dǎo)致異常的環(huán)境信息,運行期數(shù)據(jù)等,有些時候再現(xiàn)異常情況也顯得比較困難。
[0005] 由此可見,常用的系統(tǒng)性能測試工具在模擬客戶端行為的同時,記錄了客戶端并 發(fā)請求數(shù)、響應(yīng)時延等性能指標(biāo)。但在通常的測試情況下,測試工具和業(yè)務(wù)系統(tǒng)的分布在不 同主機(jī)上,業(yè)務(wù)系統(tǒng)的主機(jī)性能變化通過H方的監(jiān)控,業(yè)務(wù)主機(jī)狀態(tài)的變化不能直接反饋 給測試客戶端,常會出現(xiàn)W下的一些問題:
[0006] (1)因客戶端請求過多,web應(yīng)用主機(jī)的有限資源如CPU占用過高,連接數(shù)過多,而 使web應(yīng)用系統(tǒng)過載崩潰,只能手工重啟主機(jī)。
[0007] (2)系統(tǒng)的過載使H方監(jiān)控也會受到影響,無法及時定位系統(tǒng)崩潰時導(dǎo)致異常的 環(huán)境信息,運行期數(shù)據(jù)等,
[0008] (3)再現(xiàn)異常情況比較困難,且定位和捕捉異常的原因和系統(tǒng)瓶頸比較復(fù)雜。
[0009] 由此可見,現(xiàn)有技術(shù)中的測試設(shè)備無法實時地根據(jù)壓力情況對被測試設(shè)備的測試 條件進(jìn)行動態(tài)調(diào)整,進(jìn)而獲取到設(shè)備在滿負(fù)荷狀態(tài)下運轉(zhuǎn)的測試數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0010] 有鑒于現(xiàn)有技術(shù)中的不足,本發(fā)明提出了一種設(shè)備性能測試方法,其特征在于,包 括:
[0011] 測試設(shè)備定時采集被測試設(shè)備在模擬測試線程中的各項性能數(shù)據(jù);
[0012] 所述測試設(shè)備根據(jù)所述各項性能數(shù)據(jù)確定當(dāng)前可增加的并發(fā)線程數(shù)量的最大 值;
[0013] 所述測試設(shè)備在所述最大值W及預(yù)設(shè)并發(fā)線程單步增加值之間選擇較小的一方 作為并發(fā)線程增量值,并根據(jù)所述并發(fā)線程增量值增加所述被測試設(shè)備當(dāng)前用于模擬的測 試線程;
[0014] 所述測試設(shè)備采集所述被測試設(shè)備在模擬已增加的測試線程中的各項性能數(shù)據(jù), 并判斷所述各項性能數(shù)據(jù)是否超過預(yù)設(shè)的性能闊值;
[0015] 若否,所述測試設(shè)備將測試線程的數(shù)量設(shè)置為預(yù)設(shè)初始值,并指示所述被測試設(shè) 備對所述測試線程進(jìn)行模擬。
[0016] 相應(yīng)地,本發(fā)明還提出了一種設(shè)備性能測試裝置,其特征在于,包括:
[0017] 采集模塊,用于定時采集被測試設(shè)備在模擬測試線程中的各項性能數(shù)據(jù);
[0018] 確定模塊,用于根據(jù)所述各項性能數(shù)據(jù)確定當(dāng)前可增加的并發(fā)線程數(shù)量的最大 值;
[0019] 選擇模塊,用于在所述最大值W及預(yù)設(shè)并發(fā)線程單步增加值之間選擇較小的一方 作為并發(fā)線程增量值,并根據(jù)所述并發(fā)線程增量值增加所述被測試設(shè)備當(dāng)前用于模擬的測 試線程;
[0020] 判斷模塊,用于采集所述被測試設(shè)備在模擬已增加的測試線程中的各項性能數(shù) 據(jù),并判斷所述各項性能數(shù)據(jù)是否超過預(yù)設(shè)的性能闊值;
[0021] 若否,所述判斷模塊將測試線程的數(shù)量設(shè)置為預(yù)設(shè)初始值,并指示所述被測試設(shè) 備對所述測試線程進(jìn)行模擬。
[0022] 由此可見,通過應(yīng)用W上技術(shù)方案,通過定時采集的被測試設(shè)備在模擬測試線程 中的各項性能數(shù)據(jù)確定當(dāng)前可增加的并發(fā)線程數(shù)量的最大值,在最大值W及預(yù)設(shè)并發(fā)線程 單步增加值之間選擇較小的一方來增加被測試設(shè)備當(dāng)前用于模擬的測試線程,并判斷被測 試設(shè)備的各項性能數(shù)據(jù)是否超過預(yù)設(shè)的性能闊值。從而在使被測試設(shè)備不發(fā)生崩潰的前提 下,實時調(diào)整被測試設(shè)備達(dá)到最高性能,進(jìn)而及時定位業(yè)務(wù)系統(tǒng)瓶頸,進(jìn)行系統(tǒng)優(yōu)化。
【附圖說明】
[0023] 圖1為本發(fā)明提出的一種設(shè)備性能測試方法的流程示意圖;
[0024] 圖2為本發(fā)明具體實施例提出的測試系統(tǒng)的組成及結(jié)構(gòu)示意圖;
[00巧]圖3為本發(fā)明具體實施例提出的一種設(shè)備性能測試方法流程示意圖;
[0026] 圖4為本發(fā)明提出的一種設(shè)備性能測試裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0027] 為解決現(xiàn)有技術(shù)中被測試設(shè)備無法獲取到自身的測試壓力情況并W此對測試條 件進(jìn)行動態(tài)調(diào)整的問題,本文提出了一種通過遠(yuǎn)程監(jiān)控控制的web應(yīng)用系統(tǒng)壓力測試方 法,在測試的同時,遠(yuǎn)程監(jiān)控被測系統(tǒng)的各項有限資源的性能指標(biāo),并采集結(jié)果,動態(tài)調(diào)整 壓力測試客戶端的策略和并發(fā)量,W讓被測主機(jī)能夠維持在有效的處理狀態(tài)下,也可W記 錄到系統(tǒng)崩潰前后的并發(fā)數(shù)和業(yè)務(wù)系統(tǒng)環(huán)境數(shù)據(jù),實現(xiàn)了業(yè)務(wù)系統(tǒng)的自動優(yōu)化。
[0028] 如圖1所示,為本發(fā)明提出的一種設(shè)備性能測試方法,包括W下步驟:
[0029] S101,測試設(shè)備定時采集被測試設(shè)備在模擬測試線程中的各項性能數(shù)據(jù)。
[0030] 需要說明的是,在本步驟W及S104中,測試設(shè)備將根據(jù)預(yù)設(shè)的采集次數(shù),連續(xù)采 集所述被測試設(shè)備的各項性能數(shù)據(jù)并獲取采集結(jié)果的均方根平均值,將所述均方根平均值 作為所述各項性能數(shù)據(jù)。
[0031] S102,所述測試設(shè)備根據(jù)所述各項性能數(shù)據(jù)確定當(dāng)前可增加的并發(fā)線程數(shù)量的最 大值。
[00礎(chǔ)具體地,本步驟中測試設(shè)備首先根據(jù)Tadd=T* (Pmax-Pnns)/化ns確定與所述各項 性能數(shù)對應(yīng)的最大可增線程數(shù)估值Tadd,T為當(dāng)前測試線程數(shù)量,Pmax為與所述各項性能 數(shù)對應(yīng)的最大值,化ns為與所述各項性能數(shù)對應(yīng)的均方根平均值;然后將與所述各項性能 數(shù)對應(yīng)的最大可增線程數(shù)估值中的最小值作為所述被測試設(shè)備當(dāng)前可增加的并發(fā)線程數(shù) 量的最大值。
[0033] S103,所述測試設(shè)備在所述最大值W及預(yù)設(shè)并發(fā)線程單步增加值之間選擇較小的 一方作為并發(fā)線程增量值,并根據(jù)所述并發(fā)線程增量值增加所述被測試設(shè)備當(dāng)前用于模擬 的測試線程,。
[0034] S104,所述測試設(shè)備采集所述被測試設(shè)備在模擬已增加的測試線程中的各項性能 數(shù)據(jù),并判斷所述各項性能數(shù)據(jù)是否超過預(yù)設(shè)的性能闊值。
[0035] S105,若否,所述測試設(shè)備將測試線程的數(shù)量設(shè)置為預(yù)設(shè)初始值,并指示所述被測 試設(shè)備對所述測試線程進(jìn)行模擬。
[0036] 與本步驟相對應(yīng)地,若所述測試設(shè)備判斷所述被測試設(shè)備的各項性能數(shù)據(jù)超過預(yù) 設(shè)的性能闊值,所述測試設(shè)備將測試線程的數(shù)量設(shè)置為預(yù)設(shè)最大值,并指示所述被測試設(shè) 備對所述測試線程進(jìn)行模擬。
[0037] 此外,在該步驟之后,測試設(shè)備每隔預(yù)設(shè)的時間增加所述被測試設(shè)備當(dāng)前用于模 擬的測試線程,每次增加的測試線程的數(shù)量為所述預(yù)設(shè)并發(fā)線程單步增加值。從而實現(xiàn)對 被測試設(shè)備的循環(huán)增壓測試。
[0038] 為了進(jìn)一步闡述本發(fā)明的技術(shù)思想,現(xiàn)結(jié)合具體的應(yīng)用場景,對本發(fā)明的技術(shù)方 案進(jìn)行說明。如圖2所示,為本發(fā)明具體實施例提出的測試系統(tǒng),由性能測試客戶端W及 Web應(yīng)用服務(wù)器代理組成,其中與各個組成對應(yīng)的模塊如下:
[003引性能測試客戶端:
[0040] (1)測試用例;web應(yīng)用系統(tǒng)的用戶行為模擬用例實現(xiàn)。
[0041] (2)壓力測試單元;模擬測試線程,調(diào)用測試