專利名稱:一種分布式綜合業(yè)務(wù)自動化測試系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件測試技術(shù)領(lǐng)域,尤其涉及一種分布式綜合業(yè)務(wù)自動化測試系統(tǒng)及
方法。
背景技術(shù):
隨著社會的進(jìn)步、人民生活水平的提高,軟件日益滲透到我們生活的方方面面,而 隨著軟件應(yīng)用的擴展及深入,軟件系統(tǒng)也越來越復(fù)雜,為了降低成本、縮短軟件交付時間、 提高軟件穩(wěn)定性,軟件企業(yè)從未放棄對測試效率提升的追求。 對于比較成熟的軟件產(chǎn)品,軟件開發(fā)組織一般會使用自動化測試工具,然而,對于 復(fù)雜的軟件系統(tǒng),既需要完成某一子系統(tǒng)的界面及業(yè)務(wù)測試,又需要完成跨越多個子系統(tǒng) 之間的綜合業(yè)務(wù)測試,同時一般還需要解決分布式問題。 對于單一軟件子系統(tǒng)的測試,可分別采用針對不同業(yè)務(wù)類型的測試工具,如 GUI (Graphical User Interface,圖形用戶界面)測試工具或性能測試工具,而對于一個軟 件子系統(tǒng)的不同業(yè)務(wù)之間或者多個軟件子系統(tǒng)之間的自動化測試,這些以往'強大'的測試 工具就顯得力不從心了。 目前尚未提出對這類具有分布式特點的不同子系統(tǒng)之間綜合業(yè)務(wù)測試的自動化 測試解決方案,但此類需求卻呈日益增長之勢,尤以電信軟件系統(tǒng)為甚。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種分布式綜合業(yè)務(wù)自動化測試系統(tǒng)及方 法,用于解決現(xiàn)有自動化測試工具及測試方案,只能進(jìn)行單項業(yè)務(wù)測試或單個子系統(tǒng)測試, 而無法實現(xiàn)綜合業(yè)務(wù)類型測試的問題。 為了解決上述問題,本發(fā)明提出了一種分布式綜合業(yè)務(wù)的自動化測試系統(tǒng),包括 分布式布置的客戶端、調(diào)度服務(wù)器、測試子系統(tǒng),用于對分布式布置的被測系統(tǒng)進(jìn)行測試, 其中 所述客戶端,用于按邏輯關(guān)系組織測試項生成測試任務(wù),開始測試后將測試任務(wù) 發(fā)送給調(diào)度服務(wù)器,并從調(diào)度服務(wù)器接收查看測試報告; 所述調(diào)度服務(wù)器,用于解析測試任務(wù),按所述邏輯關(guān)系調(diào)度測試項,將各測試項分 發(fā)至對應(yīng)的測試子系統(tǒng); 所述測試子系統(tǒng),用于解析、執(zhí)行測試項對被測系統(tǒng)進(jìn)行測試,并收集測試項執(zhí)行 報告并上報給調(diào)度服務(wù)器,由調(diào)度服務(wù)器匯總生成測試任務(wù)報告給客戶端進(jìn)行報告查看。
進(jìn)一步地,所述分布式布置的客戶端、調(diào)度服務(wù)器、測試子系統(tǒng)、被測系統(tǒng)是通過 網(wǎng)絡(luò)協(xié)議連接的,其中 —個調(diào)度服務(wù)器為至少一個所述客戶端和至少一個相同的或不相同的測試子系 統(tǒng)服務(wù); —個所述客戶端只能與一個所述調(diào)度服務(wù)器建立連接, 一個所述客戶端同時運行
4一個或多個測試任務(wù); —個所述測試子系統(tǒng)只能與一個所述調(diào)度服務(wù)器連接,以及只能與一個被測系統(tǒng)建立連接; —個所述被測系統(tǒng)與一個或多個所述測試子系統(tǒng)有連接關(guān)系。 進(jìn)一步地,所述測試項,是測試子系統(tǒng)可識別并執(zhí)行的一系列操作的集合,每個測
試項都有一個類型標(biāo)識,該類型標(biāo)識與測試子系統(tǒng)的種類一一對應(yīng)。 進(jìn)一步地,所述邏輯關(guān)系是指測試項支持的分支、循環(huán)、并發(fā)的調(diào)度規(guī)則,以及延時、賦值的輔助調(diào)度規(guī)則。 進(jìn)一步地,所述客戶端進(jìn)一步還用于對測試任務(wù)進(jìn)行實時狀態(tài)監(jiān)控,調(diào)度服務(wù)器在測試任務(wù)調(diào)度過程中,將測試任務(wù)的執(zhí)行狀態(tài)信息發(fā)送到客戶端進(jìn)行實時監(jiān)控;所述客戶端對所述調(diào)度服務(wù)器的調(diào)度狀態(tài)進(jìn)行暫停、恢復(fù)和停止操作。 進(jìn)一步地,所述測試任務(wù)采用邏輯層次文件夾形式,在測試任務(wù)文件夾下包含任務(wù)文件和至少一個測試套文件夾; 每個測試套文件夾下包含一個測試套文件和至少一個測試用例文件夾; 每個測試用例文件夾下包含一個測試用例文件和至少一個測試項文件夾,每個測
試項文件夾包含一個測試項文件。 本發(fā)明還提供一種分布式綜合業(yè)務(wù)的自動化測試方法,在分布式布置的客戶端、調(diào)度服務(wù)器、測試子系統(tǒng)、被測系統(tǒng)中,分別相應(yīng)執(zhí)行下述步驟 A、在客戶端按邏輯關(guān)系組織測試項生成測試任務(wù),開始測試后將測試任務(wù)發(fā)送給調(diào)度服務(wù)器; B、調(diào)度服務(wù)器解析測試任務(wù),按所述邏輯關(guān)系調(diào)度測試項,將各測試項分發(fā)至對應(yīng)的測試子系統(tǒng),由測試子系統(tǒng)解析執(zhí)行測試項對被測系統(tǒng)進(jìn)行測試;
C、測試子系統(tǒng)收集測試項執(zhí)行報告并上報給調(diào)度服務(wù)器匯總生成測試任務(wù)報告,調(diào)度服務(wù)器將測試任務(wù)報告發(fā)送給客戶端。 進(jìn)一步地,所述測試項,是測試子系統(tǒng)可識別并執(zhí)行的一系列操作的集合,每個測試項都有一個類型標(biāo)識,該類型標(biāo)識與測試子系統(tǒng)的種類一一對應(yīng)。 進(jìn)一步地,所述測試任務(wù)采用邏輯層次文件夾形式,在測試任務(wù)文件夾下包含任務(wù)文件和至少一個測試套文件夾; 每個測試套文件夾下包含一個測試套文件和至少一個測試用例文件夾; 每個測試用例文件夾下包含一個測試用例文件和至少一個測試項文件夾,每個測
試項文件夾包含一個測試項文件; 所述邏輯關(guān)系是指測試項支持的分支、循環(huán)、并發(fā)的調(diào)度規(guī)則,以及延時、賦值的輔助調(diào)度規(guī)則。 進(jìn)一步地,步驟B中進(jìn)一步包括,在客戶端對測試任務(wù)進(jìn)行實時狀態(tài)監(jiān)控在測試任務(wù)調(diào)度過程中,調(diào)度服務(wù)器將測試任務(wù)的執(zhí)行狀態(tài)信息發(fā)送到客戶端進(jìn)行實時監(jiān)控;在所述客戶端對所述調(diào)度服務(wù)器的調(diào)度狀態(tài)進(jìn)行暫停、恢復(fù)和停止操作。 在本發(fā)明的分布式綜合業(yè)務(wù)自動化測試系統(tǒng)及方法中,測試任務(wù)主要元素是測試項,測試任務(wù)根據(jù)測試需求選擇或新建合適的測試項,然后對這些測試項進(jìn)行循環(huán)、分支、并行、延時等邏輯控制,測試項及測試項的控制邏輯組成測試任務(wù)。這就使得測試任務(wù)的生成、編輯更加靈活,在該測試系統(tǒng)下可掛載更多的類型的被測系統(tǒng)進(jìn)行測試,使得測試手段及類型更加豐富。使得本發(fā)明的分布式綜合業(yè)務(wù)自動化測試系統(tǒng)及方法更具有靈活性及廣泛適用性。 本發(fā)明的分布式綜合業(yè)務(wù)自動化測試系統(tǒng)及方法中,綜合業(yè)務(wù)主要體現(xiàn)在測試項的差異上,每個測試項都有一個類型標(biāo)識,該類型標(biāo)識與測試子系統(tǒng)的種類一一對應(yīng),在測試任務(wù)調(diào)度時,調(diào)度服務(wù)器根據(jù)測試項的類型標(biāo)識并按照空閑優(yōu)先或用戶指定優(yōu)先規(guī)則選擇最合適的測試子系統(tǒng),進(jìn)而將該測試項發(fā)送給測試子系統(tǒng)解析執(zhí)行。由于在一個測試任務(wù)中可以包含不同種類的測試項,所以在測試任務(wù)執(zhí)行時可以對多個被測系統(tǒng)進(jìn)行測試,并可控制測試的時序,從而實現(xiàn)綜合業(yè)務(wù)的自動化測試。 本發(fā)明的分布式綜合業(yè)務(wù)自動化測試系統(tǒng)及方法中,分布式主要體現(xiàn)在客戶端、調(diào)度服務(wù)器和測試子系統(tǒng)的通信上,他們之間的通信主要是以例如TCP協(xié)議的網(wǎng)絡(luò)協(xié)議為基礎(chǔ)的控制流和數(shù)據(jù)流通信,因此各模塊都可駐留在不同的計算機中,只要他們共存于一個網(wǎng)絡(luò)即可,這就使得測試可以擺脫物理空間上的限制。 綜上所述,本發(fā)明的分布式綜合業(yè)務(wù)自動化測試方法及系統(tǒng),通過系統(tǒng)中客戶端、調(diào)度服務(wù)器和測試子系統(tǒng)之間進(jìn)行網(wǎng)絡(luò)連接實現(xiàn)了分布式,而對測試項類型的區(qū)分、測試項運行的測試子系統(tǒng)的指定以及測試用例中對結(jié)構(gòu)化測試腳本的支持,實現(xiàn)了多業(yè)務(wù)復(fù)雜測試場景的支持;同時該系統(tǒng)還支持多測試任務(wù)并發(fā)、順序、定時等執(zhí)行方式,并可控制測試任務(wù)中各部分是否運行;通過使用此系統(tǒng),可以極大的擴展測試的廣度和深度,給測試帶來極大的效率提升。
圖1是本發(fā)明的自動化測試系統(tǒng)的結(jié)構(gòu)示意圖; 圖2是本發(fā)明的自動化測試方法的流程圖; 圖3是本發(fā)明的調(diào)度服務(wù)器102模塊圖; 圖4是本發(fā)明的測試子系統(tǒng)103的模塊圖; 圖5是本發(fā)明的客戶端101的模塊圖; 圖6是本發(fā)明的自動化測試方法的執(zhí)行流程圖; 圖7是本發(fā)明的調(diào)度服務(wù)器注冊響應(yīng)流程圖; 圖8是本發(fā)明的測試任務(wù)文件結(jié)構(gòu)圖; 圖9是本發(fā)明的調(diào)度服務(wù)器測試任務(wù)調(diào)度流程圖; 圖10是本發(fā)明的測試子系統(tǒng)的執(zhí)行流程圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,以下結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)說明。 本發(fā)明為了解決分布式的多個系統(tǒng)之間的綜合業(yè)務(wù)自動化測試問題,提出了一種分布式綜合業(yè)務(wù)自動化測試方法及系統(tǒng)。其中,所述測試系統(tǒng)屬于一個測試平臺,與針對具體業(yè)務(wù)的測試子系統(tǒng)無明顯聯(lián)系,通過擴展,可將任何針對具體業(yè)務(wù)的測試子系統(tǒng)掛接在該測試平臺之下,故而測試子系統(tǒng)不是本發(fā)明重點關(guān)注的內(nèi)容。
6
本發(fā)明測試系統(tǒng)構(gòu)建的測試平臺引入了測試項的概念,測試項是測試子系統(tǒng)可以
識別并執(zhí)行的基礎(chǔ)測試腳本,每個測試項都有一個類型標(biāo)識,該類型標(biāo)識與測試子系統(tǒng)的
種類一一對應(yīng)。該測試平臺提供的功能,可以將多種類的測試項組裝成結(jié)構(gòu)化的測試腳本,
形成測試任務(wù),通過腳本的調(diào)度,從而可以支持多業(yè)務(wù)的綜合測試功能。當(dāng)然,該測試平臺
與被測系統(tǒng)之間是支持分布式部署的。這就使得測試任務(wù)的生成、編輯更加靈活,在該測試
系統(tǒng)下可掛載更多的類型的被測系統(tǒng)進(jìn)行測試,使得測試手段及類型更加豐富。使得本發(fā)
明的分布式綜合業(yè)務(wù)自動化測試系統(tǒng)及方法更具有靈活性及廣泛適用性。 如圖1所示,顯示了一種分布式綜合業(yè)務(wù)的自動化測試系統(tǒng),包括分布式布置的
客戶端101、調(diào)度服務(wù)器102、測試子系統(tǒng)103,用于對分布式布置的被測系統(tǒng)104進(jìn)行測試,
其中 所述客戶端IOI,用于按邏輯關(guān)系組織測試項生成測試任務(wù),開始測試后將測試任務(wù)發(fā)送給調(diào)度服務(wù)器,并從調(diào)度服務(wù)器接收查看測試報告; 所述調(diào)度服務(wù)器102,用于解析測試任務(wù),按所述邏輯關(guān)系調(diào)度測試項,將各測試項分發(fā)至對應(yīng)的測試子系統(tǒng); 所述測試子系統(tǒng)103,用于解析、執(zhí)行測試項對被測系統(tǒng)104進(jìn)行測試,并收集測試項執(zhí)行報告并上報給調(diào)度服務(wù)器,由調(diào)度服務(wù)器匯總生成測試任務(wù)報告給客戶端進(jìn)行報
告查看。 所述分布式布置的客戶端101、調(diào)度服務(wù)器102、測試子系統(tǒng)103、被測系統(tǒng)104之間的連接方式可以進(jìn)一步限定為 —個調(diào)度服務(wù)器為至少一個所述客戶端和至少一個相同的或不相同的測試子系統(tǒng)服務(wù); —個所述客戶端只能與一個所述調(diào)度服務(wù)器建立連接, 一個所述客戶端同時運行多個測試任務(wù); —個所述測試子系統(tǒng)只能與一個所述調(diào)度服務(wù)器連接,以及只能與一個被測系統(tǒng)建立連接; —個所述被測系統(tǒng)與一個或多個所述測試子系統(tǒng)有連接關(guān)系。 所述客戶端與所述調(diào)度服務(wù)器之間、測試子系統(tǒng)與所述調(diào)度服務(wù)器之間的通信都
是采用TCP協(xié)議的形式,其中客戶端和測試子系統(tǒng)都只與調(diào)度服務(wù)器進(jìn)行通信,通信的方
式包括控制流和數(shù)據(jù)流兩類,控制流用來響應(yīng)各種控制命令,數(shù)據(jù)流用來進(jìn)行測試任務(wù)、測
試項或測試報告的傳輸。 在上述圖l所示的自動化測試系統(tǒng)中,進(jìn)一步地實施時,可以只包含一個調(diào)度服務(wù)器102 ;至少一個客戶端101,與所述調(diào)度服務(wù)器102進(jìn)行連接;至少一個測試子系統(tǒng)103,與所述調(diào)度服務(wù)器102進(jìn)行連接;若干被測系統(tǒng)104,所述測試子系統(tǒng)103只能與一個被測系統(tǒng)104建立連接,而一個所述被測系統(tǒng)104可能與多個所述測試子系統(tǒng)103有連接關(guān)系。 所述調(diào)度服務(wù)器102,用于完成客戶端及各測試子系統(tǒng)注冊與管理,測試任務(wù)的解析、調(diào)度,測試任務(wù)中各測試項的分發(fā),測試報告的搜集、整理,多級變量支持等。結(jié)合圖1,調(diào)度服務(wù)器102負(fù)責(zé)管理至少一個客戶端101和至少一個測試子系統(tǒng)103 ;接收并解析客戶端101發(fā)來的各測試任務(wù);對各測試任務(wù)進(jìn)行調(diào)度和狀態(tài)監(jiān)控;生成各測試任務(wù)的報告;響應(yīng)客戶端101的各種控制命令;按照一定規(guī)則將測試任務(wù)中的測試項發(fā)送給測試子系統(tǒng) 103執(zhí)行; 所述客戶端101,負(fù)責(zé)用例編輯、用例管理,實時運行狀態(tài)監(jiān)控,報告查看,用例運 行控制及其它一些輔助功能。 一套測試系統(tǒng)中可以有多個客戶端,各客戶端獨立工作。結(jié) 合圖l,客戶端負(fù)責(zé)與用戶交互,用戶可通過客戶端101新建測試任務(wù)、運行測試任務(wù)并對 運行狀態(tài)進(jìn)行控制、監(jiān)控測試任務(wù)運行狀態(tài)、接收和解析測試任務(wù)運行報告;
所述測試子系統(tǒng)103,用于針對一被測系統(tǒng)執(zhí)行某類測試,如GUI測試,性能測試 等。測試子系統(tǒng)接收調(diào)度服務(wù)器發(fā)來的測試項并解析執(zhí)行,最后匯總測試項報告并返回到 調(diào)度服務(wù)器102并進(jìn)入等待測試項狀態(tài); 所述被測系統(tǒng)104,用于作為測試對象,是測試子系統(tǒng)103的作用對象,測試子系 統(tǒng)通常通過TCP/IP或駐留的方式控制被測系統(tǒng)104,從而執(zhí)行特定的測試,尤其是測試子 系統(tǒng)103針對被測系統(tǒng)104執(zhí)行測試項。 基于圖l所示的自動化測試系統(tǒng),本發(fā)明的分布式綜合業(yè)務(wù)的自動化測試方法, 如圖2所示,包括 A、在客戶端按邏輯關(guān)系組織測試項生成測試任務(wù),開始測試后將測試任務(wù)發(fā)送給 調(diào)度服務(wù)器; B、調(diào)度服務(wù)器解析測試任務(wù),按所述邏輯關(guān)系調(diào)度測試項,將各測試項分發(fā)至對 應(yīng)的測試子系統(tǒng),由測試子系統(tǒng)解析執(zhí)行測試項對被測系統(tǒng)進(jìn)行測試;
C 、測試子系統(tǒng)收集測試項執(zhí)行報告并上報給調(diào)度服務(wù)器匯總生成測試任務(wù)報告, 在客戶端對測試任務(wù)進(jìn)行報告查看。 其中,客戶端主要是自動化測試系統(tǒng)與測試人員的圖形用戶接口 ,測試人員可通 過所述客戶端編寫測試任務(wù),監(jiān)控執(zhí)行狀態(tài),查看報告等。 一個所述客戶端只能與一個所述 調(diào)度服務(wù)器建立連接, 一個所述客戶端可同時運行多個測試任務(wù)。 其中,調(diào)度服務(wù)器接收客戶端編寫的測試任務(wù),對測試任務(wù)邏輯進(jìn)行調(diào)度,并在調(diào) 度過程中將測試任務(wù)中的測試項按照一定的分發(fā)規(guī)則發(fā)送到各所述的測試子系統(tǒng)執(zhí)行,并 接收所述的測試子系統(tǒng)的測試項執(zhí)行報告,匯總后返回到客戶端,在測試任務(wù)調(diào)度過程中, 所述調(diào)度服務(wù)器會將測試任務(wù)的執(zhí)行狀態(tài)信息發(fā)送到客戶端,以便用戶進(jìn)行實時監(jiān)控。同 時,用戶在所述客戶端可對所述調(diào)度服務(wù)器的調(diào)度狀態(tài)進(jìn)行暫停、恢復(fù)和停止操作。所述調(diào) 度服務(wù)器支持多測試任務(wù)并發(fā)調(diào)度。 其中,所述測試子系統(tǒng)輸入為測試項,測試項為測試子系統(tǒng)待執(zhí)行的一系列操作 的集合,測試項具有統(tǒng)一的結(jié)構(gòu),內(nèi)容根據(jù)所述測試子系統(tǒng)的不同而不同,測試項內(nèi)容只在 所述測試子系統(tǒng)中進(jìn)行解析、執(zhí)行,所述測試子系統(tǒng)在執(zhí)行完測試項后,必須向所述調(diào)度服 務(wù)器返回特定格式的測試項執(zhí)行報告。 一個所述測試子系統(tǒng)只能與一個所述調(diào)度服務(wù)器連 接。 下面結(jié)合附圖對本發(fā)明自動化測試的方法及系統(tǒng)進(jìn)行詳細(xì)說明。
本發(fā)明的圖1所示的自動化測試系統(tǒng)中,所述調(diào)度服務(wù)器102為其核心,如圖3所 示,顯示了所述調(diào)度服務(wù)器102的模塊結(jié)構(gòu)圖。所述調(diào)度服務(wù)器102包括消息通訊模塊 301 ;文件傳輸模塊(服務(wù)器端)302 ;異常處理模塊303 ;子系統(tǒng)注冊模塊304 ;子系統(tǒng)管理 模塊305 ;子系統(tǒng)查詢模塊306 ;測試任務(wù)控制模塊307 ;測試任務(wù)解析模塊308 ;測試任務(wù)
8/項映射模塊309 ;測試任務(wù)調(diào)度模塊310 ;測試任務(wù)報告模塊311。其中 所述消息通訊模塊301,用于完成與客戶端之間以及與測試子系統(tǒng)之間的網(wǎng)絡(luò)消
息通信; 所述文件傳輸模塊(服務(wù)器端)302,用于為客戶端及測試子系統(tǒng)提供文件傳輸服 務(wù); 所述異常處理模塊303,用于為其它模塊提供異常狀態(tài)處理通用服務(wù); 所述子系統(tǒng)注冊模塊304,用于響應(yīng)客戶端及測試子系統(tǒng)的注冊請求,按一定的規(guī)
則為各測試子系統(tǒng)分配相應(yīng)的資源,并在注冊成功后將測試子系統(tǒng)移交給子系統(tǒng)管理模塊
305 ; 所述子系統(tǒng)管理模塊305,用于完成客戶端和各測試子系統(tǒng)的維護(hù),該模塊協(xié)調(diào)其 它模塊完成各子系統(tǒng)的定位; 所述子系統(tǒng)查詢模塊306,用于為客戶端提供測試子系統(tǒng)查詢服務(wù),以便在客戶端 編寫測試任務(wù)時,用戶可為測試任務(wù)中各測試項指定運行的測試子系統(tǒng),從而協(xié)助完成綜 合業(yè)務(wù)測試; 所述測試任務(wù)控制模塊307,用于負(fù)責(zé)測試任務(wù)的資源分配、檢索和銷毀,可響應(yīng) 客戶端的任務(wù)控制命令。 所述測試任務(wù)解析模塊308,用于對客戶端發(fā)過來的測試任務(wù)進(jìn)行解析,從而將測 試任務(wù)轉(zhuǎn)化為調(diào)度服務(wù)器可識別、可調(diào)度的格式; 所述測試任務(wù)/項映射模塊309,用于維護(hù)測試任務(wù)/項、客戶端和測試子系統(tǒng)之 間的對應(yīng)關(guān)系,協(xié)助進(jìn)行任務(wù)調(diào)度; 所述測試任務(wù)調(diào)度模塊310,用于對測試任務(wù)的測試邏輯進(jìn)行識別、調(diào)度,是調(diào)度 服務(wù)器的核心模塊; 所述測試任務(wù)報告模塊311,用于完成測試任務(wù)報告的生成、統(tǒng)計功能,為客戶端 提供完整的測試任務(wù)運行報告源文件;同時協(xié)助客戶端完成測試任務(wù)運行狀態(tài)的監(jiān)控,使 用戶掌握測試任務(wù)的運行情況。 圖1所示的自動化測試系統(tǒng)中,所述業(yè)務(wù)測試子系統(tǒng)103的模塊結(jié)構(gòu)圖如圖4所 示,該業(yè)務(wù)測試子系統(tǒng)103包括 消息通訊模塊401,用于完成測試子系統(tǒng)與調(diào)度服務(wù)器之間的網(wǎng)絡(luò)消息通信;
文件傳輸模塊(客戶端)402,用于接收調(diào)度服務(wù)器所發(fā)送的測試項文件及上傳測 試項執(zhí)行報告和報告附屬文件使用; 異常處理模塊403,用于為其它模塊提供異常狀態(tài)處理通用服務(wù);
部署模塊404,用于處理測試子系統(tǒng)與被測系統(tǒng)之間的交互通道的建立,以便測試 子系統(tǒng)可以控制被測系統(tǒng),實現(xiàn)方式依具體情況而定,可采取TCP/IP通信方式或測試子系 統(tǒng)直接駐留被測系統(tǒng)等方式; 注冊模塊405,用于負(fù)責(zé)測試子系統(tǒng)與調(diào)度服務(wù)器的注冊; 測試項解析模塊406,用于對接收到的測試項中各種執(zhí)行指令的解析,從而轉(zhuǎn)變?yōu)?測試子系統(tǒng)可以執(zhí)行的形式; 所述測試項調(diào)度模塊407,用于負(fù)責(zé)測試項中各執(zhí)行指令的執(zhí)行調(diào)度; 所述調(diào)度控制模塊408,用于負(fù)責(zé)對指令調(diào)度的控制,進(jìn)行調(diào)度開始、暫停、繼續(xù)、停止等控制; 所述測試項報告模塊409,用于提供指令執(zhí)行報告的收集,以及測試項執(zhí)行完后測 試項報告的整理。 圖1所示的自動化測試系統(tǒng)中,所述客戶端101的模塊構(gòu)成圖如圖5所示,該客戶 端101包括 消息通訊模塊501,用于完成測試子系統(tǒng)與調(diào)度服務(wù)器之間的網(wǎng)絡(luò)消息通信;
文件傳輸模塊_客戶端502,用于為接收調(diào)度服務(wù)器所發(fā)送的測試項文件及上傳 測試項執(zhí)行報告和報告附屬文件使用; 異常處理模塊503,用于為其它模塊提供異常狀態(tài)處理通用服務(wù);
子系統(tǒng)注冊模塊504,用于向調(diào)度服務(wù)器注冊; 測試任務(wù)管理模塊505,用于測試任務(wù)的新建、修改、刪除、導(dǎo)入、導(dǎo)出等; 子系統(tǒng)查詢模塊506,用于向調(diào)度服務(wù)器查詢可用的測試子系統(tǒng),以便為不同的測
試項分配運行的測試子系統(tǒng); 支撐模塊507,用于為測試任務(wù)管理模塊提供變量支持,參數(shù)管理,測試任務(wù)同步 等輔助功能; 測試用例編輯模塊508,用于編輯測試任務(wù)中最重要的測試用例,可以編輯結(jié)構(gòu)化 的用例; 運行監(jiān)控模塊509,用于在調(diào)度服務(wù)器進(jìn)行測試任務(wù)運行調(diào)度時,可在客戶端觀察 到測試任務(wù)運行情況; 任務(wù)運行控制模塊510,用于對測試任務(wù)的運行狀態(tài)進(jìn)行控制,支持測試任務(wù)啟 動、暫停、停止功能,與調(diào)度服務(wù)器一塊實現(xiàn)測試任務(wù)的運行態(tài)控制。 如圖6所示,顯示了本發(fā)明的一種分布式綜合業(yè)務(wù)自動化測試的方法的具體執(zhí)行 流程,包括如下步驟 第一步601 :啟動調(diào)度服務(wù)器; 第二步602 :啟動測試子系統(tǒng)進(jìn)行部署和向調(diào)度服務(wù)器注冊;
第三步603 :啟動客戶端并向調(diào)度服務(wù)器注冊; 第四步604 :在客戶端新建并編輯測試任務(wù),所述測試任務(wù)由測試項按邏輯關(guān)系
組成,為測試任務(wù)選擇或添加針對不同測試子系統(tǒng)的測試項; 第五步605 :在客戶端為測試項指定運行的測試子系統(tǒng); 第六步606 :在客戶端啟動測試任務(wù); 第七步607 :調(diào)度服務(wù)器解析、調(diào)度測試任務(wù); 第八步608 :在客戶端監(jiān)控測試任務(wù)運行狀態(tài); 第九步609 :測試子系統(tǒng)解析并執(zhí)行測試項; 第十步610 :測試子系統(tǒng)返回測試項報告; 第十一步611 :調(diào)度服務(wù)器收集匯總測試任務(wù)報告; 第十二步612 :客戶端接收測試任務(wù)報告; 第十三步613 :在客戶端查看并分析測試任務(wù)報告。 在圖6所示的本發(fā)明的自動化測試方法中,第二步602和第三步603的注冊活動 中,調(diào)度服務(wù)器注冊處理過程如圖7所示
10
步驟開始調(diào)度服務(wù)器收到子系統(tǒng)(客戶端/測試子系統(tǒng))注冊消息; 步驟701 :將注冊消息放進(jìn)待處理消息隊列,并激活注冊線程; 步驟702 :注冊線程檢測消息隊列長度是否為空?; 步驟703 :如果注冊線程發(fā)現(xiàn)消息隊列為空,則轉(zhuǎn)入休眠狀態(tài); 步驟704 :如果注冊線程發(fā)現(xiàn)消息隊列不為空時,取隊列第一個消息; 步驟705 :注冊線程向所述子系統(tǒng)管理模塊305申請子系統(tǒng)編號;此子系統(tǒng)編號后
續(xù)將作為該子系統(tǒng)的唯一標(biāo)識,是子系統(tǒng)查詢模塊306查詢的結(jié)果,可用來為測試項標(biāo)識
運行的測試子系統(tǒng)。 步驟706 :子系統(tǒng)管理模塊305對申請編號的子系統(tǒng)進(jìn)行有效性檢查,檢測該子系 統(tǒng)是否注冊過; 步驟707 :如申請編號的子系統(tǒng)曾經(jīng)注冊過,則分配原編號,轉(zhuǎn)步驟709 ;
步驟708 :如申請編號的子系統(tǒng)未注冊過,則分配新編號,轉(zhuǎn)步驟709 ;
步驟709 :注冊線程判斷注冊的子系統(tǒng)的類型; 步驟710 :注冊線程將注冊的子系統(tǒng)移交子系統(tǒng)管理模塊305管理; 步驟711 :注冊線程構(gòu)造注冊響應(yīng)消息,并發(fā)送給注冊的子系統(tǒng)。 在完成一個注冊消息的處理之后,可以返回步驟701繼續(xù)處理下一個消息。 在圖6所示的本發(fā)明的自動化測試方法中,第四步609中,測試任務(wù)采用文件夾的
形式進(jìn)行管理,其結(jié)構(gòu)如圖8所示 測試任務(wù)文件夾801下包含一個叫task, xml的文件802和至少一個測試套文件 夾803 ;每個測試套文件803夾下包含一個叫suit, xml的文件804和至少一個測試用例文 件夾805 ;每個測試用例文件夾805下包含一個叫case, xml的文件806和至少一個測試項 文件夾807 ;每個測試項文件夾807包含一個測試項文件808,該文件格式為xml,名稱可根 據(jù)需要進(jìn)行命名。 測試任務(wù)文件層次中,各層次中的xml文件(除測試項文件808外)中都有一部 分內(nèi)容專門標(biāo)識與該xml文件平級的各目錄之間的關(guān)系,在該xml文件中,每一個同級目錄 都對應(yīng)一個邏輯節(jié)點,各邏輯節(jié)點有兩個ID號,一個作為自身標(biāo)識,另一個標(biāo)識作為調(diào)度 時下一個要運行的同級邏輯節(jié)點的ID ;調(diào)度規(guī)則為測試套只支持順序調(diào)度,測試用例支 持順序和循環(huán),而在測試用例case, xlm中的測試項支持分支、循環(huán)、并發(fā)等調(diào)度規(guī)則,并輔 助諸如延時、賦值等輔助調(diào)度規(guī)則協(xié)助調(diào)度。 測試任務(wù)調(diào)度時,各調(diào)度規(guī)則及測試任務(wù)中各目錄都被解析為邏輯節(jié)點,在調(diào)度
上一級邏輯節(jié)點時,會查找該邏輯節(jié)點對應(yīng)的下級調(diào)度規(guī)則,采用深度優(yōu)先的方式對各級
邏輯節(jié)點進(jìn)行調(diào)度,邏輯節(jié)點的調(diào)度方式見下文調(diào)度服務(wù)器相關(guān)部分。 在圖6所示的本發(fā)明的自動化測試方法中,第七步607中,調(diào)度服務(wù)器調(diào)度流程如
圖9所示 步驟901 :在解析完測試任務(wù)后,所述調(diào)度服務(wù)器找到該測試任務(wù)第一個節(jié)點;
步驟902 :所述調(diào)度服務(wù)器將該第一個節(jié)點加入到調(diào)度隊列尾部并喚醒調(diào)度線 程; 步驟903 :調(diào)度線程讀取調(diào)度隊列; 步驟904 :調(diào)度線程判斷調(diào)度隊列是否為空;
步驟905 :如果調(diào)度隊列為空,則調(diào)度線程進(jìn)行休眠狀態(tài),等待被激活;
步驟906 :如果調(diào)度隊列不為空,則取調(diào)度隊列首節(jié)點;
步驟907 :調(diào)度線程判斷讀取的節(jié)點是否是第一次運行; 步驟908 :如果不是第一次運行,則進(jìn)行報告處理,最后將該節(jié)點下一邏輯節(jié)點加 到調(diào)度隊列中,并轉(zhuǎn)到步驟903繼續(xù)調(diào)度; 步驟909 :如果是第一次運行,如該首節(jié)點是測試項邏輯節(jié)點,則根據(jù)該測試項類 型及指定的運行子系統(tǒng)編號,查找該測試子系統(tǒng)并通過FTP方式或其它方式發(fā)送該節(jié)點到 相應(yīng)的測試子系統(tǒng),同時將節(jié)點的定位信息加入到計數(shù)器并發(fā)送執(zhí)行測試項消息,之后進(jìn) 入步驟903繼續(xù)調(diào)度;如果是非測試項邏輯節(jié)點,則調(diào)用邏輯節(jié)點相應(yīng)方法后進(jìn)入步驟903 繼續(xù)調(diào)度。
步驟910 :調(diào)度服務(wù)器收到子系統(tǒng)發(fā)送來的測試項報告消息后,首先查找該報告
對應(yīng)的邏輯節(jié)點并與計數(shù)器中的記錄進(jìn)行匹配; 0148] 步驟911 :調(diào)度服務(wù)器判斷計數(shù)器中是否有該報告對應(yīng)節(jié)點的定位信息; 0149] 步驟912 :如果計數(shù)器中沒有與收到報告對應(yīng)節(jié)點的定位信息,則丟棄該報告; 0150] 步驟913 :如果計數(shù)器中有節(jié)點的定位信息與之匹配,則清除該節(jié)點在計數(shù)器中
的定位記錄并找到該邏輯節(jié)點;
0151] 步驟914 :調(diào)度服務(wù)器判斷是否找到報告對應(yīng)的邏輯節(jié)點;如果未找到則轉(zhuǎn)入步 驟912做丟棄處理;如果找到則轉(zhuǎn)入步驟902繼續(xù)激活調(diào)度。 0152] 在圖6所示的本發(fā)明的自動化測試方法中,測試子系統(tǒng)執(zhí)行流程如圖10所示 步驟1001 :開始使用測試子系統(tǒng)
測試子系統(tǒng)首先開始部署被測系統(tǒng),完成兩者之間交互通道的建立; 判斷是否部署成功;如果部署失敗則轉(zhuǎn)異常處理1006 ; 如果部署成功則向調(diào)度服務(wù)器進(jìn)行注冊; 判斷是否注冊成功;失敗則轉(zhuǎn)異常處理1006 ; 如果注冊成功則監(jiān)聽調(diào)度服務(wù)器消息; 收到調(diào)度服務(wù)器消息時,首先進(jìn)行消息解析; 判斷消息類型;
如果消息屬于調(diào)度控制消息,則進(jìn)行調(diào)度控制,處理完畢后發(fā)送響應(yīng)
0153] 0154] 0155] 0156] 0157] 0158] 0159] 0160] 0161]
步驟1002 步驟1003 步驟1009 步驟1005 步驟1007 步驟1008 步驟1009 步驟1010 消息1016 ; 0162] 步驟IOII 0163] 步驟1012 0164] 步驟1013 0165] 步驟1019 0166] 步驟1015 0167] 步驟1016
如果是測試項運行消息,則首先下載測試項; 對測試項中執(zhí)行指令進(jìn)行解析; 對測試項中執(zhí)行指令進(jìn)行調(diào)度執(zhí)行;
將各指令執(zhí)行情況及相關(guān)附件進(jìn)行收集整理,匯總成測試項報告; 將測試報告上傳到調(diào)度服務(wù)器;
向調(diào)度服務(wù)器發(fā)送測試項響應(yīng)消息;之后繼續(xù)監(jiān)聽端口,處理其它消息。 本發(fā)明的分布式綜合業(yè)務(wù)自動化測試系統(tǒng)及方法,通過系統(tǒng)中客戶端、調(diào)度服務(wù) 器和測試子系統(tǒng)之間進(jìn)行網(wǎng)絡(luò)連接實現(xiàn)了分布式,而對測試項類型的區(qū)分、測試項運行的 測試子系統(tǒng)的指定以及測試用例中對結(jié)構(gòu)化測試腳本的支持,實現(xiàn)了多業(yè)務(wù)復(fù)雜測試場景
12的支持;同時該系統(tǒng)還支持多測試任務(wù)并發(fā)、順序、定時等執(zhí)行方式,并可控制測試任務(wù)中 各部分是否運行;通過使用此系統(tǒng),可以極大的擴展測試的廣度和深度,給測試帶來極大的 效率提升。 以上所述僅為本發(fā)明的實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人 員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、 等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。
權(quán)利要求
一種分布式綜合業(yè)務(wù)的自動化測試系統(tǒng),其特征在于,包括分布式布置的客戶端、調(diào)度服務(wù)器、測試子系統(tǒng),用于對分布式布置的被測系統(tǒng)進(jìn)行測試,其中所述客戶端,用于按邏輯關(guān)系組織測試項生成測試任務(wù),開始測試后將測試任務(wù)發(fā)送給調(diào)度服務(wù)器,并從調(diào)度服務(wù)器接收查看測試報告;所述調(diào)度服務(wù)器,用于解析測試任務(wù),按所述邏輯關(guān)系調(diào)度測試項,將各測試項分發(fā)至對應(yīng)的測試子系統(tǒng);所述測試子系統(tǒng),用于解析、執(zhí)行測試項對被測系統(tǒng)進(jìn)行測試,并收集測試項執(zhí)行報告并上報給調(diào)度服務(wù)器,由調(diào)度服務(wù)器匯總生成測試任務(wù)報告給客戶端進(jìn)行報告查看。
2. 如權(quán)利要求1所述的自動化測試系統(tǒng),其特征在于,所述分布式布置的客戶端、調(diào)度服務(wù)器、測試子系統(tǒng)、被測系統(tǒng)是通過網(wǎng)絡(luò)協(xié)議連接 的,其中一個調(diào)度服務(wù)器為至少一個所述客戶端和至少一個相同的或不相同的測試子系統(tǒng)服務(wù);一個所述客戶端只能與一個所述調(diào)度服務(wù)器建立連接,一個所述客戶端同時運行一個 或多個測試任務(wù);一個所述測試子系統(tǒng)只能與一個所述調(diào)度服務(wù)器連接,以及只能與一個被測系統(tǒng)建立 連接;一個所述被測系統(tǒng)與一個或多個所述測試子系統(tǒng)有連接關(guān)系。
3. 如權(quán)利要求1所述的自動化測試系統(tǒng),其特征在于,所述測試項,是測試子系統(tǒng)可識別并執(zhí)行的一系列操作的集合,每個測試項都有一個 類型標(biāo)識,該類型標(biāo)識與測試子系統(tǒng)的種類一一對應(yīng)。
4. 如權(quán)利要求1所述的自動化測試系統(tǒng),其特征在于,所述邏輯關(guān)系是指測試項支持的分支、循環(huán)、并發(fā)的調(diào)度規(guī)則,以及延時、賦值的輔助 調(diào)度規(guī)則。
5. 如權(quán)利要求1所述的自動化測試系統(tǒng),其特征在于,所述客戶端進(jìn)一步還用于對測試任務(wù)進(jìn)行實時狀態(tài)監(jiān)控,調(diào)度服務(wù)器在測試任務(wù)調(diào)度 過程中,將測試任務(wù)的執(zhí)行狀態(tài)信息發(fā)送到客戶端進(jìn)行實時監(jiān)控;所述客戶端對所述調(diào)度 服務(wù)器的調(diào)度狀態(tài)進(jìn)行暫停、恢復(fù)和停止操作。
6. 如權(quán)利要求1所述的自動化測試系統(tǒng),其特征在于,所述測試任務(wù)采用邏輯層次文件夾形式,在測試任務(wù)文件夾下包含任務(wù)文件和至少一 個測試套文件夾;每個測試套文件夾下包含一個測試套文件和至少一個測試用例文件夾; 每個測試用例文件夾下包含一個測試用例文件和至少一個測試項文件夾,每個測試項 文件夾包含一個測試項文件。
7. —種分布式綜合業(yè)務(wù)的自動化測試方法,其特征在于,在分布式布置的客戶端、調(diào)度 服務(wù)器、測試子系統(tǒng)、被測系統(tǒng)中,分別相應(yīng)執(zhí)行下述步驟A、 在客戶端按邏輯關(guān)系組織測試項生成測試任務(wù),開始測試后將測試任務(wù)發(fā)送給調(diào)度 服務(wù)器;B、 度服務(wù)器解析測試任務(wù),按所述邏輯關(guān)系調(diào)度測試項,將各測試項分發(fā)至對應(yīng)的測試子系統(tǒng),由測試子系統(tǒng)解析執(zhí)行測試項對被測系統(tǒng)進(jìn)行測試;C、測試子系統(tǒng)收集測試項執(zhí)行報告并上報給調(diào)度服務(wù)器匯總生成測試任務(wù)報告,調(diào)度服務(wù)器將測試任務(wù)報告發(fā)送給客戶端。
8. 如權(quán)利要求7所述的自動化測試方法,其特征在于,所述測試項,是測試子系統(tǒng)可識別并執(zhí)行的一系列操作的集合,每個測試項都有一個類型標(biāo)識,該類型標(biāo)識與測試子系統(tǒng)的種類一一對應(yīng)。
9. 如權(quán)利要求7所述的自動化測試方法,其特征在于,所述測試任務(wù)采用邏輯層次文件夾形式,在測試任務(wù)文件夾下包含任務(wù)文件和至少一個測試套文件夾;每個測試套文件夾下包含一個測試套文件和至少一個測試用例文件夾;每個測試用例文件夾下包含一個測試用例文件和至少一個測試項文件夾,每個測試項文件夾包含一個測試項文件;所述邏輯關(guān)系是指測試項支持的分支、循環(huán)、并發(fā)的調(diào)度規(guī)則,以及延時、賦值的輔助調(diào)度規(guī)則。
10. 如權(quán)利要求7所述的自動化測試方法,其特征在于,步驟B中進(jìn)一步包括,在客戶端對測試任務(wù)進(jìn)行實時狀態(tài)監(jiān)控在測試任務(wù)調(diào)度過程中,調(diào)度服務(wù)器將測試任務(wù)的執(zhí)行狀態(tài)信息發(fā)送到客戶端進(jìn)行實時監(jiān)控;在所述客戶端對所述調(diào)度服務(wù)器的調(diào)度狀態(tài)進(jìn)行暫停、恢復(fù)和停止操作。
全文摘要
本發(fā)明公開了一種分布式綜合業(yè)務(wù)的自動化測試系統(tǒng)及方法,測試系統(tǒng)包括分布式布置的客戶端、調(diào)度服務(wù)器、測試子系統(tǒng),對分布式布置的被測系統(tǒng)進(jìn)行測試,客戶端按邏輯關(guān)系組織測試項生成測試任務(wù),開始測試后將測試任務(wù)發(fā)送給調(diào)度服務(wù)器,并從調(diào)度服務(wù)器接收查看測試報告;調(diào)度服務(wù)器解析測試任務(wù),按所述邏輯關(guān)系調(diào)度測試項,將各測試項分發(fā)至對應(yīng)的測試子系統(tǒng);所述測試子系統(tǒng)解析、執(zhí)行測試項對被測系統(tǒng)進(jìn)行測試,并收集測試項執(zhí)行報告并上報給調(diào)度服務(wù)器,由調(diào)度服務(wù)器匯總生成測試任務(wù)報告給客戶端進(jìn)行報告查看。本發(fā)明支持多業(yè)務(wù)復(fù)雜測試場景,支持多測試任務(wù)執(zhí)行,極大的擴展測試的廣度和深度,給測試帶來極大的效率提升。
文檔編號G06F11/36GK101727389SQ200910222629
公開日2010年6月9日 申請日期2009年11月23日 優(yōu)先權(quán)日2009年11月23日
發(fā)明者張宏強 申請人:中興通訊股份有限公司