本發(fā)明屬于電網(wǎng)實時數(shù)據(jù)庫系統(tǒng)的自動化測試技術(shù)領(lǐng)域,具體是涉及一種電網(wǎng)實時數(shù)據(jù)庫系統(tǒng)的自動化測試系統(tǒng)的實現(xiàn)方法。
背景技術(shù):
國網(wǎng)實時數(shù)據(jù)庫系統(tǒng)功能點繁多,版本迭代速度快,每個產(chǎn)品發(fā)布時,對跨平臺、功能點全覆蓋的測試要求越來越高。
因此,需要提出一種新型的針對國網(wǎng)實時數(shù)據(jù)庫系統(tǒng)的自動化測試系統(tǒng)。
技術(shù)實現(xiàn)要素:
發(fā)明目的:為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種電網(wǎng)實時數(shù)據(jù)庫系統(tǒng)的自動化測試系統(tǒng)的實現(xiàn)方法,實現(xiàn)了不同平臺、不同架構(gòu)軟件的自動協(xié)同部署,從而達到充分利用測試時間及硬件資源,縮短測試周期,節(jié)省人力資源的目的。
技術(shù)方案:為實現(xiàn)上述目的,本發(fā)明的一種電網(wǎng)實時數(shù)據(jù)庫系統(tǒng)的自動化測試系統(tǒng)的實現(xiàn)方法,提供一種自動化測試系統(tǒng),所述自動化測試系統(tǒng)包括web及應用服務器、控制服務器、SVN服務器、數(shù)據(jù)庫服務器、若干臺測試主機以及郵件服務器;
所述web及應用服務器,用于部署測試管理平臺,提供界面化的測試管理服務;
所述控制服務器,用于部署測試系統(tǒng)的控制服務,提供后臺測試任務并執(zhí)行服務;
所述SVN服務器,用于提供測試版本、測試用例程序、被測系統(tǒng)部署信息的配置管理服務;
所述數(shù)據(jù)庫服務器,用于部署數(shù)據(jù)庫,提供測試管理數(shù)據(jù)的存儲服務;
所述測試主機,用于部署測試系統(tǒng)的執(zhí)行服務,提供后臺測試任務的具體執(zhí)行服務;
所述郵件服務器,用于提供測試報告郵件收發(fā)服務;
所述方法包括以下步驟:
S1測試人員配置測試任務并提交測試版本和測試任務至所述web及應用服務器;
S2所述web及應用服務器上傳測試版本至所述SVN服務器的配置管理服務中,同時所述web及應用服務器測試管理服務將測試版本的測試任務保存到所述數(shù)據(jù)庫服務器;
S3所述控制服務器控制服務偵聽到數(shù)據(jù)庫中有未執(zhí)行的測試版本后獲取所述SVN服務器中測試版本并獲取保存到所述數(shù)據(jù)庫服務器中的測試任務,生成測試訂單并建立測試流程實例;
S4工作流引擎驅(qū)動測試流程中的若干類活動流程,并依據(jù)所述數(shù)據(jù)庫服務器內(nèi)容生成若干類活動的工單程序;
S5所述測試主機中工單處理程序偵聽到所需處理的工單后,執(zhí)行所需操作,若干臺測試主機獨立操作;所述測試主機更新執(zhí)行狀態(tài)并將執(zhí)行狀態(tài)發(fā)送至所述數(shù)據(jù)庫服務器;所述測試主機上傳活動測試結(jié)果至所述控制服務器;
S6測試流程實例結(jié)束后,所述控制服務器控制服務活動測試結(jié)果,并更新測試任務狀態(tài);
S7所述控制服務器發(fā)送測試報告至所述郵件服務器,調(diào)用所述郵件服務器接口發(fā)送測試報告至測試人員。
進一步的,所述自動化測試系統(tǒng)包括訂單服務、測試資源管理服務、工作流服務、工單服務、執(zhí)行服務、虛擬機服務、網(wǎng)絡服務、代理服務、測試報告服務、日志服務和P2M服務;
所述訂單服務,根據(jù)測試版本的任務配置及測試項目的全局配置,生成測試訂單信息;
所述測試資源管理服務,根據(jù)分配的測試機、測試任務所關(guān)聯(lián)的測試集合配置,生成測試訂單屬性信息;
所述工作流服務,根據(jù)訂單類型、工作流模板生成測試版本的工作流實例;
所述工單服務,根據(jù)工作流實例中的各類活動生成相應的測試工單及屬性信息;
所述執(zhí)行服務,根據(jù)測試工單類型及屬性信息執(zhí)行;
所述虛擬機服務,根據(jù)虛擬機配置封裝相應操作系統(tǒng)虛擬機的訪問接口;
所述網(wǎng)絡服務,根據(jù)地址配置封裝各測試設備間網(wǎng)絡通信的訪問接口;
所述代理服務,根據(jù)代理配置封裝各測試設備間代理的訪問接口;
所述測試報告服務,根據(jù)測試報告模板配置封裝測試報告生成的訪問接口;
所述日志服務,根據(jù)日志配置封裝日志生成的訪問接口;
所述P2M服務,根據(jù)數(shù)據(jù)庫配置提供封裝數(shù)據(jù)庫操作的訪問接口。
進一步的,更新執(zhí)行狀態(tài)包括更新四個實體的執(zhí)行狀態(tài),該四個實體分別為測試版本、訂單、工作流實例過程模型和工單,其中工作流實例過程模型用于描述工作流實例;更新四個實體的執(zhí)行狀態(tài)滿足四種規(guī)則:
規(guī)則1:測試版本驅(qū)動程序在新建測試版本信息后,若檢測到存在測試任務規(guī)則,則將測試版本狀態(tài)由等待遷移為執(zhí)行中;若檢測到測試版本相關(guān)訂單狀態(tài)為完成,則同步測試版本狀態(tài)為完成;
規(guī)則2:訂單驅(qū)動程序在偵聽到測試版本狀態(tài)為執(zhí)行中時,新建訂單信息,若檢測到存在測試資源規(guī)則,則將訂單狀態(tài)由等待遷移為執(zhí)行中;若出現(xiàn)異常,則遷移訂單狀態(tài)為異常并返回等待;若檢測到工作流過程模型狀態(tài)為完成,則同步訂單狀態(tài)為完成;
規(guī)則3:工作流過程模型驅(qū)動程序在偵聽到訂單狀態(tài)為執(zhí)行中時,新建工作流過程模型,若檢測到過程模型中的活動存在滿足工作流引擎規(guī)則,則將該活動狀態(tài)由等待遷移為執(zhí)行中;若出現(xiàn)異常,則遷移該活動狀態(tài)為異常并返回等待;若檢測到過程模型中活動均完成,則同步過程模型狀態(tài)為完成;
規(guī)則4:工單驅(qū)動程序在偵聽到工作流過程模型中存在活動狀態(tài)為執(zhí)行中時,新建工單信息,若該工單被所對應的處理服務輪詢到,則將該工單的狀態(tài)由等待遷移為執(zhí)行中,并執(zhí)行該工單;若工單執(zhí)行過程無誤,則將該工單的狀態(tài)由執(zhí)行中遷移為完成;若出現(xiàn)異常,則遷移該工單狀態(tài)為異常并返回等待。
有益效果:本發(fā)明與現(xiàn)有技術(shù)比較,具有的優(yōu)點是:本發(fā)明方法專門針對國網(wǎng)國網(wǎng)實時數(shù)據(jù)庫系統(tǒng)的特征,設計一種滿足于自動化測試系統(tǒng),實現(xiàn)了自動下載測試版本,自動分發(fā)和執(zhí)行測試任務,自動收集測試結(jié)果并生成測試報告等功能;實現(xiàn)跨平臺自動部署環(huán)境,實現(xiàn)跨平臺測試自動化,實現(xiàn)了不同平臺、不同架構(gòu)軟件的自動協(xié)同部署,從而達到充分利用測試時間及測試硬件資源,縮短測試周期,節(jié)省人力資源,測試成本大大縮減,測試資源被充分利用的目的;實現(xiàn)接口功能點全覆蓋,回歸測試不再手動過接口功能點。
附圖說明
圖1是本發(fā)明提出的自動化測試系統(tǒng)的結(jié)構(gòu)示意圖。
圖2是本發(fā)明提出的自動化測試系統(tǒng)數(shù)據(jù)流圖;
圖3是自動化測試系統(tǒng)實體狀態(tài)遷移圖。
圖4是測試工作流模型1的結(jié)構(gòu)示意圖。
圖5是測試工作流模型2的結(jié)構(gòu)示意圖。
圖6是測試工作流模型3的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明作更進一步的說明。
在提出本發(fā)明方法之前,首先運用工作流模型對自動化過程建模,所設計的自動化測試系統(tǒng)可實現(xiàn)測試過程的自動化處理,在測試流程處理過程中,根據(jù)一組定義好的處理規(guī)則,可以把相關(guān)的信息、文件或任務從一個參與者傳遞到另一個活動的參與者,并將過程和活動的數(shù)據(jù)抽象為訂單和工單,處理規(guī)則定義如下:
定義1測試工作流實例是n個測試工作流過程模型和工作流引擎的集合,表示為:{n個測試工作流過程模型的集合、測試工作流引擎},其中n為正整數(shù);
定義2測試工作流過程模型是指測試活動、測試活動之間的關(guān)系,表示為:{測試活動、測試活動關(guān)聯(lián)關(guān)系}
定義3測試活動是一個四元組,activity:={id,status,pre,next},其中id是活動的唯一標識,status是活動的狀態(tài),pre是前驅(qū)活動的id,當前驅(qū)活動有多個時用逗號隔開,next是后續(xù)活動的id,當后續(xù)活動有多個時用逗號隔開;
定義4測試工作流引擎是指根據(jù)測試活動的狀態(tài)及測試活動前驅(qū)和后續(xù)活動關(guān)系,驅(qū)動測試活動之間流轉(zhuǎn)的程序;
定義5測試訂單是測試工作流實例的屬性規(guī)格及數(shù)據(jù)的集合;
定義6測試工單時測試活動的屬性規(guī)格及數(shù)據(jù)的集合;
測試工作流過程模型1描述測試過程開始/結(jié)束的通用過程模型,如圖4所示,過程模型1中包含兩個子過程模型,共有5個節(jié)點,每個節(jié)點表示一個活動,依次為:
0:版本測試開始;
x:分支活動,與其他過程過程模型中x活動連接的活動標識;
y:合并活動,與其他過程模型中y活動連接的活動標識;
16:歸檔訂單信息;
1:版本測試結(jié)束。
過程模型2描述測試過程中客戶端/服務端為異構(gòu)平臺的過程模型,如圖5所示:過程模型2共有18個節(jié)點,每個節(jié)點表示一個活動,依次為:
x:分支活動,與其他過程模型中x活動連接的活動標識;
4:子訂單等待測試資源;
17:測試文件下載(異構(gòu)平臺客戶端)
18:測試文件下載(異構(gòu)平臺服務端)
19:校驗測試資源(異構(gòu)平臺客戶端)
20:校驗測試資源(異構(gòu)平臺服務端)
21:發(fā)送測試文件(異構(gòu)平臺客戶端)
22:發(fā)送測試文件(異構(gòu)平臺服務端);
9:部署客戶端測試環(huán)境;
10:部署服務端測試環(huán)境;
11:執(zhí)行測試用例程序;
12:發(fā)送測試結(jié)果文件;
25:清理測試環(huán)境(異構(gòu)平臺客戶端);
26:清理測試環(huán)境(異構(gòu)平臺服務端);
27:釋放測試資源(異構(gòu)平臺客戶端);
28:釋放測試資源(異構(gòu)平臺服務端);
2:歸檔子訂單;
y:合并活動,與其他過程模型中y活動連接的活動標志;
過程模型3描述測試過程中客戶端/服務端為同構(gòu)平臺的過程模型,,如圖6所示,過程模型3共有13個節(jié)點,每個節(jié)點表示一個活動,依次為:
x:分支(fork)活動,與其他過程模型中x活動連接的活動標識;
4:子訂單等待測試資源;
5:測試文件下載(同構(gòu)平臺);
6:校驗測試資源(同構(gòu)平臺);
7:發(fā)送測試文件(同構(gòu)平臺);
9:部署客戶端測試環(huán)境;
10:部署服務端測試環(huán)境;
11:執(zhí)行測試用例程序;
12:發(fā)送測試結(jié)果文件;
13:清理測試環(huán)境;
14:釋放測試資源;
2:歸檔子訂單;
y:合并(join)活動,與其他過程模型中y活動鏈接的活動標識。
從上述提出的思想可以看出,雖然測試工作流過程模型2和測試工作流過程模型3是針對不同測試過程的建模,活動{4,9,10,11,12,2}的處理線程是可以直接復用的,活動{5,17,18}、活動{6,19,20}、活動{7,21,22}、活動{13、25、26}、活動{14、27、28}的處理線程執(zhí)行邏輯一致,是可以通過參數(shù)化重載的方式復用的;
運用上述三類過程模型模板,可以通過{1個過程模型模板1,n個過程模型模板2,n個過程模型模板3}(n為正整數(shù))的組合實例化出一個測試版本的多種測試任務的并行執(zhí)行;
數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它描述了數(shù)據(jù)在系統(tǒng)中流動和處理的過程,反應了系統(tǒng)邏輯功能,將數(shù)據(jù)流圖應用在自動化測試系統(tǒng)中,如圖2所示,在自動化測試系統(tǒng)的工作流驅(qū)動過程中,首先需要如表1所示的服務支撐:
表1
表1為自動化測試系統(tǒng)各類服務介紹。
在自動化測試過程中,有四個實體存在狀態(tài)的遷移,分別是測試版本、訂單、工作流實例過程模型和工單,四個實體的狀態(tài)是存在一定關(guān)聯(lián)性的,這使得系統(tǒng)中的實體能夠依序流轉(zhuǎn)并被驅(qū)動執(zhí)行,實體狀態(tài)遷移如圖3所示,
規(guī)則1測試版本驅(qū)動程序在“新建”測試版本信息后,若檢測到存在測試任務規(guī)則,則將測試版本狀態(tài)由“等待”遷移為“執(zhí)行中”;若檢測到測試版本相關(guān)訂單狀態(tài)為“完成”,則同步測試版本狀態(tài)為“完成”。
規(guī)則2訂單驅(qū)動程序在偵聽到測試版本狀態(tài)為“執(zhí)行中”時,“新建”訂單信息,若檢測到存在測試資源規(guī)則,則將訂單狀態(tài)由“等待”遷移為“執(zhí)行中”;若出現(xiàn)異常,則遷移訂單狀態(tài)為“異?!辈⒎祷亍暗却?;若檢測到工作流過程模型狀態(tài)為“完成”,則同步訂單狀態(tài)為“完成”。
規(guī)則3工作流過程模型驅(qū)動程序在偵聽到訂單狀態(tài)為“執(zhí)行中”時,“新建”工作流過程模型,若檢測到過程模型中的活動存在滿足工作流引擎規(guī)則,則將該活動狀態(tài)由“等待”遷移為“執(zhí)行中”;若出現(xiàn)異常,則遷移該活動狀態(tài)為“異?!辈⒎祷亍暗却保蝗魴z測到過程模型中活動均“完成”,則同步過程模型狀態(tài)為“完成”。
規(guī)則4工單驅(qū)動程序在偵聽到工作流過程模型中存在活動狀態(tài)為“執(zhí)行中”時,“新建”工單信息,若該工單被所對應的處理服務輪詢到,則將該工單的狀態(tài)由“等待”遷移為“執(zhí)行中”,并執(zhí)行該工單;若工單執(zhí)行過程無誤,則將該工單的狀態(tài)由“執(zhí)行中”遷移為“完成”;若出現(xiàn)異常,則遷移該工單狀態(tài)為“異?!辈⒎祷亍暗却?。
通過上述定義規(guī)則介紹,下面對本發(fā)明提出的電網(wǎng)實時數(shù)據(jù)庫系統(tǒng)的自動化測試系統(tǒng)的實現(xiàn)方法進行詳細介紹:首先提出了一種電網(wǎng)實時數(shù)據(jù)庫系統(tǒng)的自動化測試系統(tǒng),如圖1所示,該自動化測試系統(tǒng)包括web及應用服務器、控制服務器、SVN服務器、數(shù)據(jù)庫服務器、若干臺測試主機(測試主機1,…,測試主機n)以及郵件服務器;
web及應用服務器,用于部署測試管理平臺,提供界面化的測試管理服務;
控制服務器,用于部署測試系統(tǒng)的控制服務,提供后臺測試任務并執(zhí)行服務;
SVN服務器,用于提供測試版本、測試用例程序、被測系統(tǒng)部署信息的配置管理服務;
數(shù)據(jù)庫服務器,用于部署數(shù)據(jù)庫,提供測試管理數(shù)據(jù)的存儲服務;
測試主機,用于部署測試系統(tǒng)的執(zhí)行服務,提供后臺測試任務的具體執(zhí)行服務;
郵件服務器,用于提供測試報告郵件收發(fā)服務;
本發(fā)明提出的方法包括以下步驟:
測試人員配置測試任務并提交測試版本和測試任務至web及應用服務器;
web及應用服務器上傳測試版本至SVN服務器的配置管理服務中,同時web及應用服務器測試管理服務將測試版本的測試任務保存到數(shù)據(jù)庫服務器;
控制服務器控制服務偵聽到數(shù)據(jù)庫中有未執(zhí)行的測試版本后獲取SVN服務器中測試版本并獲取保存到數(shù)據(jù)庫服務器中的測試任務,生成測試訂單并建立測試流程實例;
工作流引擎驅(qū)動測試流程中的若干類活動流程,并依據(jù)數(shù)據(jù)庫服務器內(nèi)容生成若干類活動的工單程序;
測試主機中工單處理程序偵聽到所需處理的工單后,執(zhí)行所需操作,若干臺測試主機獨立操作;測試主機更新執(zhí)行狀態(tài)并將執(zhí)行狀態(tài)發(fā)送至數(shù)據(jù)庫服務器;測試主機上傳活動測試結(jié)果至控制服務器;
測試流程實例結(jié)束后,控制服務器控制服務活動測試結(jié)果,并更新測試任務狀態(tài);
最后控制服務器發(fā)送測試報告至所述郵件服務器,調(diào)用郵件服務器接口發(fā)送測試報告至測試人員。
本發(fā)明方法專門針對國網(wǎng)國網(wǎng)實時數(shù)據(jù)庫系統(tǒng)的特征,設計一種滿足于自動化測試系統(tǒng),實現(xiàn)了自動下載測試版本,自動分發(fā)和執(zhí)行測試任務,自動收集測試結(jié)果并生成測試報告等功能;實現(xiàn)跨平臺自動部署環(huán)境,實現(xiàn)跨平臺測試自動化,實現(xiàn)了不同平臺、不同架構(gòu)軟件的自動協(xié)同部署。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出:對于本技術(shù)領(lǐng)域的技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。