自動化性能測試系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及自動化測試領(lǐng)域,尤其涉及一種自動化性能測試系統(tǒng)及方法。
【背景技術(shù)】
[0002]在現(xiàn)有的性能測試系統(tǒng)中,通常需要模擬多種負(fù)載條件,性能測試旨在通過模擬測試當(dāng)負(fù)載在逐漸增加等條件下時,測試應(yīng)用程序的各項性能指標(biāo)的變化情況,但是現(xiàn)有的測試系統(tǒng)中的測試資源并沒有統(tǒng)一的管理,從前期的應(yīng)用程序包編譯、路徑構(gòu)建以及版本部署到后期的測試場景的搭建需要耗費較多的人力和時間,這就會增加測試的成本并且降低測試效率。
【發(fā)明內(nèi)容】
[0003]針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明涉及一種自動化性能測試系統(tǒng)及方法,可以以自動化形式的工作流滿足實際的性能測試場景實施。
[0004]本發(fā)明如下技術(shù)方案:
[0005]一種自動化性能測試系統(tǒng),應(yīng)用于模擬負(fù)載條件對客戶端性能的自動化測試中,所述自動化性能測試系統(tǒng)包括:
[0006]需求管理模塊,管理并發(fā)送性能需求;
[0007]自動化控制模塊,與所述需求管理模塊連接,接收并根據(jù)所述性能需求部署測試環(huán)境、產(chǎn)生測試任務(wù);
[0008]測試控制模塊,與所述自動化控制模塊連接,調(diào)取所述測試任務(wù),并根據(jù)所述測試任務(wù)模擬所述負(fù)載條件及測試進(jìn)程;
[0009]資源管理模塊,分別與所述自動化控制模塊、所述測試控制模塊連接;以及
[0010]所述自動化控制模塊啟動所述資源管理模塊,所述資源管理模塊根據(jù)所述負(fù)載條件和測試進(jìn)程在所述測試環(huán)境中進(jìn)行所述客戶端的自動化性能測試。
[0011]優(yōu)選的,所述性能需求包括業(yè)務(wù)線提交的性能需求和/或常態(tài)化的性能需求。
[0012]優(yōu)選的,所述資源管理模塊包括:
[0013]負(fù)載單元,根據(jù)所述負(fù)載條件發(fā)送數(shù)據(jù)請求,并且根據(jù)所述測試進(jìn)程代理所述測試進(jìn)程的服務(wù);
[0014]服務(wù)器單元,與所述負(fù)載單元連接,提供所述客戶端對所述服務(wù)器的訪問機制,并根據(jù)所述數(shù)據(jù)請求與所述客戶端之間進(jìn)行數(shù)據(jù)交互操作,以進(jìn)行性能測試。
[0015]優(yōu)選的,所述服務(wù)器單元包括:
[0016]應(yīng)用服務(wù)器單元,分別與所述自動化控制模塊、所述客戶端連接,提供所述客戶端對所述服務(wù)器的訪問機制;
[0017]數(shù)據(jù)庫服務(wù)器單元,分別與所述負(fù)載單元和所述客戶端連接,根據(jù)所述數(shù)據(jù)請求與所述客戶端之間進(jìn)行數(shù)據(jù)交互操作。
[0018]優(yōu)選的,所述自動化控制模塊包括:
[0019]初始化單元,與所述需求管理模塊連接,根據(jù)所述性能需求對所述測試環(huán)境重置,以使所述測試環(huán)境恢復(fù)至基線狀態(tài);
[0020]環(huán)境部署單元,與所述初始化單元連接,在恢復(fù)基線狀態(tài)后,獲取數(shù)據(jù)包和/或配置文件和/或?qū)嵗齾?shù)并根據(jù)所述數(shù)據(jù)包和/或配置文件和/或?qū)嵗齾?shù)部署所述測試環(huán)境;
[0021 ]服務(wù)操作單元,與所述環(huán)境部署單元連接,啟動和驗證所述應(yīng)用服務(wù)器單元;
[0022]應(yīng)用控制單元,分別與所述環(huán)境部署單元、服務(wù)操作單元連接,預(yù)存儲有數(shù)據(jù)包和/或配置文件和/或?qū)嵗齾?shù),并對所述測試控制模塊進(jìn)行控制、操作。
[0023]優(yōu)選的,所述自動化控制模塊還包括:
[0024]服務(wù)報警單元,與所述資源管理模塊連接,對所述資源管理模塊的使用情況和/或應(yīng)用錯誤進(jìn)行報警;
[0025]日志追蹤單元,分別與所述資源管理模塊、所述測試控制模塊、所述需求管理模塊連接,對所述自動化性能測試系統(tǒng)中的各個操作進(jìn)行記錄。
[0026]優(yōu)選的,所述測試控制模塊包括:
[0027]場景配置單元,與所述應(yīng)用控制單元連接,通過所述應(yīng)用控制單元的控制和/或操作調(diào)用所述測試任務(wù);
[0028]腳本庫,與所述場景配置單元連接,預(yù)存儲有測試腳本,以及
[0029]所述場景配置單元運行所述測試腳本,根據(jù)所述測試任務(wù)進(jìn)行測試參數(shù)的配置,以模擬所述負(fù)載條件和測試進(jìn)程。
[0030]優(yōu)選的,所述測試控制模塊還包括:
[0031]指標(biāo)監(jiān)控單元,分別與所述資源管理模塊、所述自動化控制模塊連接,對設(shè)定的對象進(jìn)行測試指標(biāo)的監(jiān)控和/或管理;
[0032]數(shù)據(jù)采集單元,分別與所述資源管理模塊、所述客戶端連接,在性能測試過程中,采集所述資源管理模塊和/或所述客戶端的測試數(shù)據(jù)。
[0033]—種自動化性能測試方法,所述自動化性能測試方法包括:
[0034]步驟SI,產(chǎn)生并發(fā)送性能需求;
[0035]步驟S2,接收并根據(jù)所述性能需求部署測試環(huán)境、產(chǎn)生測試任務(wù);
[0036]步驟S3,調(diào)取所述測試任務(wù),并根據(jù)所述測試任務(wù)模擬負(fù)載條件及測試進(jìn)程;
[0037]步驟S4,根據(jù)所述負(fù)載條件和測試進(jìn)程在所述測試環(huán)境中進(jìn)行客戶端的自動化性能測試。
[0038]優(yōu)選的,所述步驟S2中具體包括:
[0039]步驟S21,根據(jù)所述性能需求對所述測試環(huán)境重置,以使所述測試環(huán)境恢復(fù)至基線狀態(tài);
[0040]步驟S22,獲取數(shù)據(jù)包和/或配置文件和/或?qū)嵗齾?shù)并根據(jù)所述數(shù)據(jù)包和/或配置文件和/或?qū)嵗齾?shù)部署所述測試環(huán)境;
[0041 ] 步驟S23,啟動和驗證應(yīng)用服務(wù)器單元;
[0042]步驟S24,啟動所述測試控制模塊。
[0043]優(yōu)選的,所述步驟S3具體包括:
[0044]步驟S31,根據(jù)所述測試任務(wù)運行測試腳本,并且對測試參數(shù)的進(jìn)行配置,以模擬所述負(fù)載條件和測試進(jìn)程;
[0045]優(yōu)選的,所述步驟S4具體包括:
[0046]步驟S41,根據(jù)所述負(fù)載條件和所述測試進(jìn)程發(fā)送數(shù)據(jù)請求,并且根據(jù)所述數(shù)據(jù)請求與所述客戶端之間進(jìn)行數(shù)據(jù)交互操作,以完成自動化性能測試。
[0047]本發(fā)明的有益效果是:
[0048]本發(fā)明可以依據(jù)實際的項目需求,達(dá)到快速部署、合理構(gòu)建、編譯以及性能自動化實施;并且在沒有人工干預(yù)環(huán)境下,能夠依據(jù)當(dāng)前默認(rèn)策略實施性能自動化回歸測試活動,實時更新及維護(hù)性能測試環(huán)境應(yīng)用程序包及相關(guān)參數(shù)文件為最新版本,從而為業(yè)務(wù)上線提供數(shù)據(jù)參考及質(zhì)量建議,還可以從項目實施角度,能夠合理規(guī)劃性能測試計劃、場景及資源配置,節(jié)約人力成本以及時間成本。
【附圖說明】
[0049]圖1為本發(fā)明一種自動化性能測試系統(tǒng)的結(jié)構(gòu)示意圖;
[0050]圖2為本發(fā)明一種自動化性能測試方法的流程示意圖。
【具體實施方式】
[0051]需要說明的是,在不沖突的情況下,下述技術(shù)方案,技術(shù)特征之間可以相互組合。
[0052]下面結(jié)合附圖對本發(fā)明的【具體實施方式】作進(jìn)一步的說明:
[0053]實施例一
[0054]如圖1所示,本實施例提供了一種自動化性能測試系統(tǒng),測試的對象可以是對客戶端性能的測試,本實施例中的自動化測試系統(tǒng)包括:資源管理模塊,對測試系統(tǒng)中的資源進(jìn)行管理,資源管理模塊可以包括服務(wù)器單元和負(fù)載單元,資源管理模塊的作用就在于對服務(wù)器單元和負(fù)載單元的管理,負(fù)載單元和服務(wù)器單元連接,服務(wù)器單元還可以與客戶端通信連接,負(fù)載單元為自動化性能測試的主要代理進(jìn)程服務(wù),模擬客戶端(其可以是客戶端應(yīng)用程序)對服務(wù)器單元進(jìn)行數(shù)據(jù)請求,例如壓力機等負(fù)載都可以作為負(fù)載單元,并且負(fù)載單元中的壓力機(即負(fù)載機的一種)可以是一臺或多臺,可以根據(jù)實際情況進(jìn)行設(shè)定,實際環(huán)境中會以集群形式表現(xiàn),壓力機即為測試系統(tǒng)中的測試資源。服務(wù)器單元可以包括應(yīng)用服務(wù)器單元和數(shù)據(jù)庫服務(wù)器單元,相應(yīng)的應(yīng)用服務(wù)器單元可以為應(yīng)用服務(wù)器,數(shù)據(jù)庫服務(wù)器單元可以為數(shù)據(jù)庫服務(wù)器。
[0055]進(jìn)一步的,應(yīng)用服務(wù)器單元和數(shù)據(jù)庫服務(wù)器單元的數(shù)量也可以根據(jù)實際情況決定一個還是多個,應(yīng)用服務(wù)器可以通過各種協(xié)議把商業(yè)邏輯曝露給客戶端這一應(yīng)用程序。它提供了訪問商業(yè)邏輯的途徑以供客戶端應(yīng)用程序使用,應(yīng)用服務(wù)器使用此商業(yè)邏輯就像調(diào)用對象的一個方法一樣。此外,數(shù)據(jù)庫服務(wù)器為客戶應(yīng)用程序提供服務(wù),主要用于處理數(shù)據(jù)查詢或數(shù)據(jù)操縱的請求,這些服務(wù)可以是查詢、更新、事務(wù)管理、索引、高速緩存、查詢優(yōu)化、安全及多用戶存取控制等。
[0056]本實施例的自動化測試系統(tǒng)還可以包括一自動化控制模塊和需求管理模塊,首先對需求管理模塊進(jìn)行說明,需求管理模塊可以對業(yè)務(wù)線提交的性能需求以及預(yù)設(shè)定的常態(tài)化的需求進(jìn)行管理,其中管理的方式可以是將常態(tài)化的需求和業(yè)務(wù)線提交的需求進(jìn)行列表,產(chǎn)生一需求任務(wù)清單,清單中羅列常態(tài)化的需求和/或任務(wù)線的需求,羅列的具體項目可以根據(jù)實際情況進(jìn)行設(shè)定,常態(tài)化的需求可以在需求管理模塊中預(yù)設(shè)定,而業(yè)務(wù)線的需求可以實時產(chǎn)生,需求管理模塊還可以根據(jù)實際的情況決定業(yè)務(wù)線需求和常態(tài)化需求的發(fā)送。
[0057]上述的自動化控制模塊分別與資源管理模塊和需求管理模塊連接,自動化控制模塊主要是對應(yīng)用服務(wù)器模塊提供的應(yīng)用環(huán)境進(jìn)行初始化、部署、服務(wù)操作、應(yīng)用報警及應(yīng)用日志輸出等。自動化控制模塊可以包括初始化單元,初始化單元與需求管理模塊連接,在需求管理模塊根據(jù)預(yù)設(shè)定的常態(tài)化需求和/或?qū)崟r的業(yè)務(wù)線需求產(chǎn)生需求任務(wù)清單后,需求管理模塊會將需求任務(wù)清單發(fā)送至自動化控制模塊的初始化單元,此時初始化單元會對負(fù)載性能的測試環(huán)境進(jìn)行重置,使其恢復(fù)至基線狀態(tài);自動化控制模塊還可以包括環(huán)境部署單元和應(yīng)用控制單元,環(huán)境部署單元在測試環(huán)境恢復(fù)至基線狀態(tài)后,對應(yīng)用控制單元中的業(yè)務(wù)線包、配置參數(shù)文件及實例參數(shù)等進(jìn)行應(yīng)用軟件的部署和搭建,部署和搭建的操作完成后,自動化控制模塊中的另一單元為服務(wù)操作單元,服務(wù)操作單元可以與應(yīng)用服務(wù)器單元連接,并且對應(yīng)用服務(wù)器的相關(guān)服務(wù)按照特定的配置依次進(jìn)行啟動、驗證等操作,綜上,自動化控制模塊主要用于對測試環(huán)境進(jìn)行初始化、部署、服務(wù)操作以及應(yīng)用報警,同時,記錄相關(guān)操作信息以判斷操作執(zhí)行正確性。
[