分布式壓力測試系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其是涉及一種分布式壓力測試系統(tǒng)和方法。
【背景技術(shù)】
[0002]應(yīng)用在上線前,通常要進(jìn)行性能測試,模擬實際場景找出性能瓶頸。單臺測試服務(wù)器資源有限,無法滿足測試一些復(fù)雜系統(tǒng)所需達(dá)到的并發(fā)峰值,所以就需要考慮協(xié)同多臺測試服務(wù)器,以形成足夠的并發(fā)壓力,這就需要采用分布式壓力測試方法,利用測試服務(wù)器集群產(chǎn)生模擬真實業(yè)務(wù)的壓力對被測系統(tǒng)進(jìn)行加壓,分析被測系統(tǒng)在不同壓力情況下的表現(xiàn),找出其潛在的瓶頸。
[0003]然而,目前的分布式壓力測試方法,測試服務(wù)器在執(zhí)行測試任務(wù)時,缺乏安全機(jī)制,如果在外網(wǎng)環(huán)境下,測試過程中容易遇到外來不明請求(如病毒)的攻擊,因此測試應(yīng)用范圍只能局限于同一操作系統(tǒng)和同一網(wǎng)絡(luò)環(huán)境。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的主要目的在于提供一種分布式壓力測試系統(tǒng)和方法,旨在提高測試系統(tǒng)的安全性,擴(kuò)展測試應(yīng)用范圍。
[0005]為達(dá)以上目的,本發(fā)明提出一種分布式壓力測試系統(tǒng),包括控制服務(wù)器和由至少兩個測試服務(wù)器組成的測試服務(wù)器集群,其中:
[0006]所述控制服務(wù)器,用于組建所述測試服務(wù)器集群,為所述測試服務(wù)器集群中的每一個測試服務(wù)器分配一個身份識別碼;向所述測試服務(wù)器集群派發(fā)測試任務(wù),為每一個測試任務(wù)分配一個密鑰;
[0007]所述測試服務(wù)器集群,用于接收所述測試任務(wù),判斷所述測試任務(wù)的密鑰與接收測試任務(wù)的測試服務(wù)器的身份識別碼是否匹配,當(dāng)二者匹配時執(zhí)行所述測試任務(wù),否則不予執(zhí)行所述測試任務(wù)。
[0008]進(jìn)一步地,還包括監(jiān)控服務(wù)器,所述監(jiān)控服務(wù)器用于:實時監(jiān)控被測系統(tǒng)的負(fù)載狀況和所述測試服務(wù)器不予執(zhí)行所述測試任務(wù)的狀況。
[0009]進(jìn)一步地,所述監(jiān)控服務(wù)器還用于:通過可視化視圖實時展示監(jiān)控結(jié)果。
[0010]進(jìn)一步地,所述分布式壓力測試系統(tǒng)基于JMeter工具進(jìn)行壓力測試。
[0011]進(jìn)一步地,所述控制服務(wù)器還用于:設(shè)置JMeter線程數(shù)量和循環(huán)測試次數(shù)。
[0012]進(jìn)一步地,所述控制服務(wù)器還用于:將本機(jī)加入所述測試服務(wù)器集群,為本機(jī)分配一個身份識別碼,作為測試服務(wù)器執(zhí)行測試任務(wù)。
[0013]本發(fā)明同時提出一種分布式壓力測試方法,包括步驟:
[0014]控制服務(wù)器組建測試服務(wù)器集群,為所述測試服務(wù)器集群中的每一個測試服務(wù)器分配一個身份識別碼,所述測試服務(wù)器集群由至少兩個測試服務(wù)器組成;
[0015]所述控制服務(wù)器向所述測試服務(wù)器集群派發(fā)測試任務(wù),為每一個測試任務(wù)分配一個密鑰;
[0016]所述測試服務(wù)器集群接收所述測試任務(wù),判斷所述測試任務(wù)的密鑰與接收所述測試任務(wù)的測試服務(wù)器的身份識別碼是否匹配,當(dāng)二者匹配時執(zhí)行所述測試任務(wù),否則不予執(zhí)行所述測試任務(wù)。
[0017]進(jìn)一步地,所述方法還包括:監(jiān)控服務(wù)器實時監(jiān)控被測系統(tǒng)的負(fù)載狀況和所述測試服務(wù)器不予執(zhí)行所述測試任務(wù)的狀況。
[0018]進(jìn)一步地,所述方法還包括:所述監(jiān)控服務(wù)器通過可視化視圖實時展示監(jiān)控結(jié)果。
[0019]進(jìn)一步地,所述方法還包括:所述控制服務(wù)器將本機(jī)加入所述測試服務(wù)器集群,為本機(jī)分配一個身份識別碼,作為測試服務(wù)器執(zhí)行測試任務(wù)。
[0020]本發(fā)明所提供的一種分布式壓力測試系統(tǒng),通過對測試任務(wù)進(jìn)行驗證,只有攜帶了密鑰并匹配成功的測試任務(wù)才允許執(zhí)行,避免了測試過程中遇到外來不明請求(如病毒)的攻擊,使得分布式測試過程更加安全,強(qiáng)化了整個測試系統(tǒng)或框架的安全性、穩(wěn)定性以及健壯性。由于對測試任務(wù)的驗證可在外網(wǎng)環(huán)境測試中起到保護(hù)盾的作用,可以避免受到外來不明請求(如病毒)的攻擊,因此本發(fā)明的測試系統(tǒng)不再局限于同一操作系統(tǒng)和同一網(wǎng)絡(luò)環(huán)境,擴(kuò)展了測試應(yīng)用范圍,還可以應(yīng)用于任何跨網(wǎng)絡(luò)、跨區(qū)域、跨操作系統(tǒng)的測試,被測對象可分布在不同環(huán)境的測試,如被測對象環(huán)境可以為內(nèi)外網(wǎng)測試、window操作系統(tǒng)與linux系統(tǒng)的測試等等。
【附圖說明】
[0021]圖1是本發(fā)明的分布式壓力測試系統(tǒng)第一實施例的模塊示意圖;
[0022]圖2是圖1的分布式壓力測試系統(tǒng)進(jìn)行壓力測試時各服務(wù)器的交互示意圖;
[0023]圖3是本發(fā)明的分布式壓力測試系統(tǒng)第二實施例的模塊示意圖;
[0024]圖4是圖3中的分布式壓力測試系統(tǒng)進(jìn)行壓力測試時各服務(wù)器的交互示意圖;
[0025]圖5是本發(fā)明的分布式壓力測試方法第一實施例的流程圖;
[0026]圖6是本發(fā)明的分布式壓力測試方法第二實施例的流程圖。
[0027]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進(jìn)一步說明。
【具體實施方式】
[0028]應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0029]參見圖1、圖2,提出本發(fā)明的分布式壓力測試系統(tǒng)第一實施例,所述系統(tǒng)包括控制服務(wù)器和測試服務(wù)器集群,所述測試服務(wù)器集群由至少兩個測試服務(wù)器組成。所述系統(tǒng)基于壓力測試工具進(jìn)行壓力測試,系統(tǒng)中的每一臺服務(wù)器上均安裝有壓力測試工具,其中最典型的壓力測試工具為JMeter工具。
[0030]控制服務(wù)器:用于利用壓力測試工具組建測試服務(wù)器集群,為測試服務(wù)器集群中的每一個測試服務(wù)器分配一個身份識別碼(ID)。然后解釋測試計劃,獲得需要執(zhí)行的任務(wù)列表,根據(jù)測試執(zhí)行時間向測試服務(wù)器集群派發(fā)測試任務(wù),并為每一個測試任務(wù)分配一個密鑰,以此指定執(zhí)行該任務(wù)的測試服務(wù)器,實現(xiàn)各測試服務(wù)器負(fù)載均衡。
[0031]測試完成后,控制服務(wù)器可收集集群中各測試服務(wù)器的測試情況,并匯總打印??刂品?wù)器端的壓力測試工具打印log日志,查看整個集群測試情況。
[0032]測試服務(wù)器集群:用于接收控制服務(wù)器派發(fā)的測試任務(wù),對測試任務(wù)進(jìn)行驗證,判斷該測試任務(wù)的密鑰與接收測試任務(wù)的測試服務(wù)器的身份識別碼是否匹配(如二者的數(shù)字是否相同),當(dāng)二者匹配時則執(zhí)行該測試任務(wù),向被測系統(tǒng)發(fā)送請求,當(dāng)二者不匹配時則不予執(zhí)行該測試任務(wù)。其中,被測系統(tǒng)包括Web服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器等。
[0033]從而,通過對測試任務(wù)進(jìn)行驗證,只有攜帶了密鑰并匹配成功的測試任務(wù)才允許執(zhí)行,避免了測試過程中遇到外來不明請求(如病毒)的攻擊,使得分布式測試過程更加安全,強(qiáng)化了整個測試框架的安全性、穩(wěn)定性以及健壯性。由于對測試任務(wù)的驗證可在外網(wǎng)環(huán)境測試中起到保護(hù)盾的作用,可以避免受到外來不明請求(如病毒)的攻擊,因此本發(fā)明的測試系統(tǒng)不再局限于同一操作系統(tǒng)和同一網(wǎng)絡(luò)環(huán)境,還可以應(yīng)用于任何跨網(wǎng)絡(luò)、跨區(qū)域、跨操作系統(tǒng)的測試,被測對象可分布在不同環(huán)境的測試,如被測對象環(huán)境可以為內(nèi)外網(wǎng)測試、window操作系統(tǒng)與linux系統(tǒng)的測試等等。
[0034]進(jìn)一步地,當(dāng)測試服務(wù)器數(shù)量不夠,不能滿足測試需求時,控制服務(wù)器還可以將本機(jī)加入測試服務(wù)器集群,為本機(jī)分配一個身份識別碼,作為測試服務(wù)器執(zhí)行測試任務(wù)。
[0035]進(jìn)一步地,控制服務(wù)器還可以根據(jù)實際需要設(shè)置測試線程數(shù)量(如JMeter線程數(shù)量)和循環(huán)測試次數(shù),如需進(jìn)行負(fù)載測試,可連續(xù)運(yùn)行幾天,觀察系統(tǒng)的負(fù)載情況。從而可滿足目前大數(shù)據(jù)時代的測試,當(dāng)系統(tǒng)實際場景處理并發(fā)數(shù)上萬、十萬、上百萬甚至更多時,都可適用于本發(fā)明的分布式壓力測試系統(tǒng)。當(dāng)當(dāng)前的測試服務(wù)器數(shù)量無法滿足當(dāng)前并發(fā)時,可無限拓展集群中的測試服務(wù)器來滿足實際業(yè)務(wù)需求,靈活拓展,無需修改整體測試架構(gòu),方便、簡單、快速,提高了測試效率。
[0036]參見圖3、圖4,提出本發(fā)明的分布式壓力測試系統(tǒng)第二實施例,本實施例與第一實施例的區(qū)別是增加了一監(jiān)控服務(wù)器,所述監(jiān)控服務(wù)器用于實時監(jiān)控被測系統(tǒng)的負(fù)載狀況,如被測系統(tǒng)的內(nèi)存、CPU、10等運(yùn)行情況,還可以進(jìn)一步監(jiān)控測試任驗證失敗,測試服務(wù)器不予執(zhí)行測試任務(wù)的狀況。
[0037]進(jìn)一步地,監(jiān)控服務(wù)器還可以通過可視化視圖實時展