專利名稱:一種磁盤陣列的自動(dòng)化測試服務(wù)器及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及測試技術(shù),特別涉及一種磁盤陣列的自動(dòng)化測試服務(wù)器及系統(tǒng)。
背景技術(shù):
當(dāng)前磁盤陣列測試大部分采用手工測試,手工測試有一定的局限性且效率不高, 并且測試用例每次都是重復(fù)執(zhí)行,測試人員在測試過程中會(huì)感到單調(diào)乏味;同時(shí)很多公司 都在推行敏捷流程,敏捷流程的核心理念是增強(qiáng)應(yīng)對需求變化的能力,提高產(chǎn)品質(zhì)量,提 升開發(fā)效率和縮短交付周期;從這二方面我們都可以看到,磁盤陣列自動(dòng)化測試迫在眉睫。
發(fā)明內(nèi)容
本發(fā)明提供了 一種磁盤陣列的自動(dòng)化測試服務(wù)器及系統(tǒng),可以實(shí)現(xiàn)對磁盤陣列的 自動(dòng)化測試。本發(fā)明實(shí)施例提出一種磁盤陣列的自動(dòng)化測試服務(wù)器,所述自動(dòng)化測試服務(wù)器包 括用例腳本模塊,用于保存預(yù)先設(shè)置的用例腳本,用例腳本中定義測試邏輯和數(shù)據(jù) 接口 ;產(chǎn)品特性模塊,用于封裝特定被測存儲(chǔ)設(shè)備特有的命令;產(chǎn)品基類模塊,用于保存各個(gè)產(chǎn)品通用命令集以及測試套所用的測試數(shù)據(jù);根據(jù) 當(dāng)前測試產(chǎn)品,從相應(yīng)的產(chǎn)品特性模塊中獲取特有命令,并從用例腳本模塊獲取用例腳本, 將所述用例腳本、測試數(shù)據(jù)、通用命令集和特有命令組裝成測試腳本,并將所述測試腳本發(fā) 送至基礎(chǔ)類模塊;接收來自基礎(chǔ)類模塊的測試結(jié)果信息,并將所述測試結(jié)果信息進(jìn)行對比 等相關(guān)處理后發(fā)送至測試報(bào)告生成模塊;測試報(bào)告生成模塊,用于根據(jù)來自產(chǎn)品基類模塊的測試結(jié)果信息生成測試報(bào)告;基礎(chǔ)類模塊,用于保存預(yù)先設(shè)置的支撐腳本庫,支撐腳本庫提供與存儲(chǔ)設(shè)備命令 行對應(yīng)的接口,以及在此之上封裝的高層接口 ;基礎(chǔ)類模塊根據(jù)支撐腳本庫將來自產(chǎn)品基 類模塊的測試腳本轉(zhuǎn)換為被測磁盤陣列所能識(shí)別的命令行,并將所述命令行發(fā)送至被測磁 盤陣列;以及接收來自被測磁盤陣列的命令行,將其轉(zhuǎn)換成為測試結(jié)果信息,并將所述測試 結(jié)果信息發(fā)送至產(chǎn)品基類模塊。較佳地,所述自動(dòng)化測試服務(wù)器進(jìn)一步包括存儲(chǔ)工具集模塊,用于配置存儲(chǔ)產(chǎn)品 測試工具,通過基礎(chǔ)類模塊對被測磁盤陣列進(jìn)行讀寫測試以及數(shù)據(jù)一致性測試。較佳地,用例腳本模塊中保存的用例腳本以測試套為單位分類保存,每一個(gè)測試 套中包含多個(gè)測試邏輯各不相同的測試用例,同一個(gè)測試套中的測試用例可以使用相同的 測試數(shù)據(jù)。本發(fā)明實(shí)施例還提出一種磁盤陣列的自動(dòng)化測試系統(tǒng),包括自動(dòng)化測試服務(wù)器和 被測磁盤陣列;所述自動(dòng)化測試服務(wù)器包括
用例腳本模塊,用于保存預(yù)先設(shè)置的用例腳本,用例腳本中定義測試邏輯和數(shù)據(jù) 接口 ;產(chǎn)品特性模塊,用于封裝特定被測存儲(chǔ)設(shè)備特有的命令;產(chǎn)品基類模塊,用于保存各個(gè)產(chǎn)品通用命令集以及測試套所用的測試數(shù)據(jù);根據(jù) 當(dāng)前測試產(chǎn)品,從相應(yīng)的產(chǎn)品特性模塊中獲取特有命令,并從用例腳本模塊獲取用例腳本, 將所述用例腳本、測試數(shù)據(jù)、通用命令集和特有命令組裝成測試腳本,并將所述測試腳本發(fā) 送至基礎(chǔ)類模塊;接收來自基礎(chǔ)類模塊的測試結(jié)果信息,并將所述測試結(jié)果信息進(jìn)行對比 等相關(guān)處理后發(fā)送至測試報(bào)告生成模塊;測試報(bào)告生成模塊,用于根據(jù)來自產(chǎn)品基類模塊的測試結(jié)果信息生成測試報(bào)告;基礎(chǔ)類模塊,用于保存預(yù)先設(shè)置的支撐腳本庫,支撐腳本庫提供與存儲(chǔ)設(shè)備命令 行對應(yīng)的接口,以及在此之上封裝的高層接口 ;基礎(chǔ)類模塊根據(jù)支撐腳本庫將來自產(chǎn)品基 類模塊的測試腳本轉(zhuǎn)換為被測磁盤陣列所能識(shí)別的命令行,并將所述命令行發(fā)送至被測磁 盤陣列;以及接收來自被測磁盤陣列的命令行,將其轉(zhuǎn)換成為測試結(jié)果信息,并將所述測試 結(jié)果信息發(fā)送至產(chǎn)品基類模塊;所述被測磁盤陣列包括命令行處理模塊和被測模塊;命令行處理模塊,用于接收來自自動(dòng)化測試服務(wù)器的命令行,判斷所述命令行對 應(yīng)于哪一個(gè)被測模塊,然后將該命令行發(fā)送至相應(yīng)的被測模塊;還用于接收來自被測模塊 的命令行形式的執(zhí)行結(jié)果,并將所述執(zhí)行結(jié)果發(fā)送至測試服務(wù)器。較佳地,所述自動(dòng)化測試服務(wù)器進(jìn)一步包括存儲(chǔ)工具集模塊,用于配置存儲(chǔ)產(chǎn)品 測試工具,通過基礎(chǔ)類模塊對被測磁盤陣列進(jìn)行讀寫測試以及數(shù)據(jù)一致性測試。較佳地,用例腳本模塊中保存的用例腳本以測試套為單位分類保存,每一個(gè)測試 套中包含多個(gè)測試邏輯各不相同的測試用例,同一個(gè)測試套中的測試用例可以使用相同的 測試數(shù)據(jù)。從以上技術(shù)方案可以看出,用例腳本封裝在用例腳本模塊中,而支撐腳本在基礎(chǔ) 類模塊中,實(shí)現(xiàn)測試腳本分為支撐腳本和用例腳本兩大層次,用例腳本通過調(diào)用支撐腳本 來實(shí)現(xiàn)對磁盤陣列進(jìn)行測試。在用例腳本中,調(diào)用支撐腳本的函數(shù)使用的都是統(tǒng)一命令行, 統(tǒng)一命令行在支撐腳本內(nèi)部完成了適配、命令下發(fā)、結(jié)果解釋等的功能,這樣針對一個(gè)特 性,只需要開發(fā)出一套用例腳本,就可以測試多個(gè)產(chǎn)品;產(chǎn)品之間的差異,只需要進(jìn)行少量 修改的統(tǒng)一命令行接口函數(shù)內(nèi)容即可,大大減少了人的工作量,實(shí)現(xiàn)了磁盤陣列測試的自 動(dòng)化,并且盡可能的保證用例腳本的可移植性。
圖1為本發(fā)明實(shí)施例提出的磁盤陣列自動(dòng)化測試系統(tǒng)的示意圖。
具體實(shí)施例方式本發(fā)明提出一種磁盤陣列自動(dòng)化測試方案,根據(jù)自動(dòng)化測試設(shè)計(jì)分層的思想,將 測試腳本進(jìn)行分層、封裝,分為支撐腳本和用例腳本兩大層次支撐腳本以腳本包的方式提 供給用例腳本使用,其作用是提供命令行對應(yīng)的接口函數(shù)、API函數(shù)、測試框架,完成命令下 發(fā),結(jié)果獲取、解釋、檢查等;用例腳本就是由測試工程師根據(jù)產(chǎn)品特性測試的需要,使用支撐腳本提供的命令編寫的用例。支撐腳本屬于底層的部分,為自動(dòng)化用例設(shè)計(jì)提供支撐;支撐腳本的作用是提供 存儲(chǔ)設(shè)備命令行對應(yīng)的接口函數(shù)、API函數(shù)、測試框架,完成命令下發(fā),結(jié)果獲取、解釋、檢查 等功能。支撐腳本以包的方式提供給用例腳本使用,只要把支撐腳本統(tǒng)一放在指定目錄下 面,配置好路徑后,即可在用例腳本中進(jìn)行調(diào)用。支撐腳本的結(jié)構(gòu)是基于人機(jī)對話平臺(tái)進(jìn)行設(shè)計(jì)的。如存儲(chǔ)設(shè)備的命令,在Cmodule 基類中,定義了通用設(shè)備接口。然后在產(chǎn)品特性類中進(jìn)行特性接口的實(shí)現(xiàn)、適配,在外層定 義設(shè)備無關(guān)類,在設(shè)備無關(guān)類中定義了測試通用接口,測試通用接口是外部測試代碼的統(tǒng) 一命令行接口,由設(shè)備無關(guān)的統(tǒng)一命令行接口去掉用設(shè)備相關(guān)的接口,這樣測試用例就不 和環(huán)境交互,是一套完整的測試邏輯。有了統(tǒng)一接口的支撐腳本,在我們的用例腳本中,調(diào) 用支撐腳本的函數(shù)使用的都是統(tǒng)一命令行,統(tǒng)一命令行在支撐腳本內(nèi)部完成了適配、命令 下發(fā)、結(jié)果解釋等的功能,這樣針對一個(gè)特性,我們只需要開發(fā)出一套用例腳本,就可以測 試多個(gè)產(chǎn)品;產(chǎn)品之間的差異,只需要進(jìn)行少量的更改移植工作就可以完成(修改的統(tǒng)一 命令行接口函數(shù)內(nèi)容即可)。這樣就盡可能的保證我們用例腳本的可移植性。事實(shí)上,我們可以將用例看成是由兩部分組成一部分是測試邏輯流程,另一部分 是該流程運(yùn)行起來必須的數(shù)據(jù)。對一個(gè)用例而言,邏輯是相對固定的,而數(shù)據(jù)卻根據(jù)被測試 系統(tǒng)和環(huán)境的不同而有極大的變化。在用例腳本里面只定義測試邏輯和數(shù)據(jù)接口,那么用 例就能夠適應(yīng)多種變化的環(huán)境。為解決測試邏輯和測試數(shù)據(jù)分離的問題,引入了測試套的 概念。測試套包含了多個(gè)測試邏輯各不相同的測試用例,在同一個(gè)測試套里面的所用測試 用例都使用相同的測試數(shù)據(jù),而且在該測試套所包含的測試用例的物理環(huán)境都是完全相同 的。在執(zhí)行時(shí),可以根據(jù)測試環(huán)境的變化對測試數(shù)據(jù)進(jìn)行修改,以適應(yīng)多變的測試環(huán)境,滿 足測試需求。本發(fā)明實(shí)施例提出的磁盤陣列自動(dòng)化測試系統(tǒng)如圖1所示,包括測試服務(wù)器100 和被測磁盤陣列200。其中,測試服務(wù)器100包括用例腳本模塊101,多個(gè)產(chǎn)品特性模塊(產(chǎn) 品A特性模塊102、產(chǎn)品B特性模塊103和產(chǎn)品C特性模塊104),測試報(bào)告生成模塊105,產(chǎn) 品基類模塊106,存儲(chǔ)工具集模塊107和基礎(chǔ)類模塊108。用例腳本模塊101用于保存預(yù)先設(shè)置的用例腳本,用例腳本中定義測試邏輯和數(shù) 據(jù)接口。用例腳本是由測試工程師根據(jù)產(chǎn)品特性測試的需要,使用支撐腳本提供的函數(shù)編 寫的用例。利用底層的自動(dòng)化支撐腳本,可以進(jìn)行自動(dòng)化用例腳本設(shè)計(jì),編寫可維護(hù)性較 好、質(zhì)量較高的自動(dòng)化測試用例腳本。較佳地,用例腳本模塊101中保存的用例腳本以測試套為單位分類保存,每一個(gè) 測試套中包含多個(gè)測試邏輯各不相同的測試用例,同一個(gè)測試套中的測試用例可以使用相 同的測試數(shù)據(jù)。產(chǎn)品特性模塊用于封裝特定被測存儲(chǔ)設(shè)備特有的命令。例如,產(chǎn)品A特性模塊102 用于封裝存儲(chǔ)設(shè)備A的特有命令,產(chǎn)品B特性模塊103用于封裝存儲(chǔ)設(shè)備B的特有命令。產(chǎn)品基類模塊106用于保存各個(gè)產(chǎn)品通用命令集以及測試套所用的測試數(shù)據(jù)。根 據(jù)當(dāng)前測試產(chǎn)品,從相應(yīng)的產(chǎn)品特性模塊中獲取特有命令,并從用例腳本模塊101獲取用 例腳本,將所述用例腳本、測試數(shù)據(jù)、通用命令集和特有命令組裝成測試腳本,并將所述測 試腳本發(fā)送至基礎(chǔ)類模塊108 ;接收來自基礎(chǔ)類模塊108的測試結(jié)果信息,并將所述測試結(jié)果信息進(jìn)行對比等相關(guān)處理后發(fā)送至測試報(bào)告生成模塊105。所述存儲(chǔ)工具集模塊107用于配置存儲(chǔ)產(chǎn)品測試工具,主要用于對存儲(chǔ)設(shè)備進(jìn)行 讀寫測試及數(shù)據(jù)一致性測試,所述測試工具包括但不限于=IOmeter, Pdtest及業(yè)界一些通 用的存儲(chǔ)產(chǎn)品測試工具。存儲(chǔ)工具集模塊107通過基礎(chǔ)類模塊108對被測磁盤陣列進(jìn)行讀 寫測試以及數(shù)據(jù)一致性測試。所述測試報(bào)告生成模塊105用于根據(jù)來自產(chǎn)品基類模塊106的測試結(jié)果信息生成 直觀的圖形化和/或表格化測試報(bào)告。所述基礎(chǔ)類模塊108用于保存預(yù)先設(shè)置的支撐腳本庫,支撐腳本庫提供與存儲(chǔ)設(shè) 備命令行對應(yīng)的接口,以及在此之上封裝的高層接口。此外為了實(shí)現(xiàn)用例的自動(dòng)化測試,還 需要相關(guān)的通信支撐、測試框架等相關(guān)的功能,這些都包括在支撐腳本庫中提供?;A(chǔ)類模 塊108根據(jù)支撐腳本庫將來自產(chǎn)品基類模塊106的測試腳本轉(zhuǎn)換為被測磁盤陣列200所能 識(shí)別的命令行,并將所述命令行發(fā)送至被測磁盤陣列200 ;以及接收來自被測磁盤陣列200 的命令行,將其轉(zhuǎn)換成為測試結(jié)果信息,并將所述測試結(jié)果信息發(fā)送至產(chǎn)品基類模塊106。被測磁盤陣列200包括命令行處理模塊201和被測模塊202(包括模塊1、模塊 2……模塊N)。命令行處理模塊201用于接收來自測試服務(wù)器100的命令行,判斷所述命令行對 應(yīng)于哪一個(gè)被測模塊,然后將該命令行發(fā)送至相應(yīng)的被測模塊;還用于接收來自被測模塊 的命令行形式的執(zhí)行結(jié)果,并將所述執(zhí)行結(jié)果發(fā)送至測試服務(wù)器100。模塊1至模塊N中,每一個(gè)模塊代表存儲(chǔ)產(chǎn)品中的一個(gè)模塊,例如系統(tǒng)管理模塊, 端口管理模塊,主機(jī)管理模塊,RAID組模塊,磁盤管理模塊等等以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種磁盤陣列的自動(dòng)化測試服務(wù)器,其特征在于,所述自動(dòng)化測試服務(wù)器包括用例腳本模塊,用于保存預(yù)先設(shè)置的用例腳本,用例腳本中定義測試邏輯和數(shù)據(jù)接Π ;產(chǎn)品特性模塊,用于封裝特定被測存儲(chǔ)設(shè)備特有的命令;產(chǎn)品基類模塊,用于保存各個(gè)產(chǎn)品通用命令集以及測試套所用的測試數(shù)據(jù);根據(jù)當(dāng)前 測試產(chǎn)品,從相應(yīng)的產(chǎn)品特性模塊中獲取特有命令,并從用例腳本模塊獲取用例腳本,將所 述用例腳本、測試數(shù)據(jù)、通用命令集和特有命令組裝成測試腳本,并將所述測試腳本發(fā)送至 基礎(chǔ)類模塊;接收來自基礎(chǔ)類模塊的測試結(jié)果信息,并將所述測試結(jié)果信息進(jìn)行對比等相 關(guān)處理后發(fā)送至測試報(bào)告生成模塊;測試報(bào)告生成模塊,用于根據(jù)來自產(chǎn)品基類模塊的測試結(jié)果信息生成測試報(bào)告;基礎(chǔ)類模塊,用于保存預(yù)先設(shè)置的支撐腳本庫,支撐腳本庫提供與存儲(chǔ)設(shè)備命令行對 應(yīng)的接口,以及在此之上封裝的高層接口 ;基礎(chǔ)類模塊根據(jù)支撐腳本庫將來自產(chǎn)品基類模 塊的測試腳本轉(zhuǎn)換為被測磁盤陣列所能識(shí)別的命令行,并將所述命令行發(fā)送至被測磁盤陣 列;以及接收來自被測磁盤陣列的命令行,將其轉(zhuǎn)換成為測試結(jié)果信息,并將所述測試結(jié)果 信息發(fā)送至產(chǎn)品基類模塊。
2.根據(jù)權(quán)利要求1所述的自動(dòng)化測試服務(wù)器,其特征在于,所述自動(dòng)化測試服務(wù)器進(jìn) 一步包括存儲(chǔ)工具集模塊,用于配置存儲(chǔ)產(chǎn)品測試工具,通過基礎(chǔ)類模塊對被測磁盤陣列 進(jìn)行讀寫測試以及數(shù)據(jù)一致性測試。
3.根據(jù)權(quán)利要求1所述的自動(dòng)化測試服務(wù)器,其特征在于,用例腳本模塊中保存的用 例腳本以測試套為單位分類保存,每一個(gè)測試套中包含多個(gè)測試邏輯各不相同的測試用 例,同一個(gè)測試套中的測試用例可以使用相同的測試數(shù)據(jù)。
4.一種磁盤陣列的自動(dòng)化測試系統(tǒng),其特征在于,包括自動(dòng)化測試服務(wù)器和被測磁盤 陣列;所述自動(dòng)化測試服務(wù)器包括用例腳本模塊,用于保存預(yù)先設(shè)置的用例腳本,用例腳本中定義測試邏輯和數(shù)據(jù)接Π ;產(chǎn)品特性模塊,用于封裝特定被測存儲(chǔ)設(shè)備特有的命令;產(chǎn)品基類模塊,用于保存各個(gè)產(chǎn)品通用命令集以及測試套所用的測試數(shù)據(jù);根據(jù)當(dāng)前 測試產(chǎn)品,從相應(yīng)的產(chǎn)品特性模塊中獲取特有命令,并從用例腳本模塊獲取用例腳本,將所 述用例腳本、測試數(shù)據(jù)、通用命令集和特有命令組裝成測試腳本,并將所述測試腳本發(fā)送至 基礎(chǔ)類模塊;接收來自基礎(chǔ)類模塊的測試結(jié)果信息,并將所述測試結(jié)果信息進(jìn)行對比等相 關(guān)處理后發(fā)送至測試報(bào)告生成模塊;測試報(bào)告生成模塊,用于根據(jù)來自產(chǎn)品基類模塊的測試結(jié)果信息生成測試報(bào)告;基礎(chǔ)類模塊,用于保存預(yù)先設(shè)置的支撐腳本庫,支撐腳本庫提供與存儲(chǔ)設(shè)備命令行對 應(yīng)的接口,以及在此之上封裝的高層接口 ;基礎(chǔ)類模塊根據(jù)支撐腳本庫將來自產(chǎn)品基類模 塊的測試腳本轉(zhuǎn)換為被測磁盤陣列所能識(shí)別的命令行,并將所述命令行發(fā)送至被測磁盤陣 列;以及接收來自被測磁盤陣列的命令行,將其轉(zhuǎn)換成為測試結(jié)果信息,并將所述測試結(jié)果 信息發(fā)送至產(chǎn)品基類模塊;所述被測磁盤陣列包括命令行處理模塊和被測模塊;命令行處理模塊,用于接收來自自動(dòng)化測試服務(wù)器的命令行,判斷所述命令行對應(yīng)于 哪一個(gè)被測模塊,然后將該命令行發(fā)送至相應(yīng)的被測模塊;還用于接收來自被測模塊的命 令行形式的執(zhí)行結(jié)果,并將所述執(zhí)行結(jié)果發(fā)送至測試服務(wù)器。
5.根據(jù)權(quán)利要求4所述的自動(dòng)化測試系統(tǒng),其特征在于,所述自動(dòng)化測試服務(wù)器進(jìn)一 步包括存儲(chǔ)工具集模塊,用于配置存儲(chǔ)產(chǎn)品測試工具,通過基礎(chǔ)類模塊對被測磁盤陣列進(jìn) 行讀寫測試以及數(shù)據(jù)一致性測試。
6.根據(jù)權(quán)利要求4所述的自動(dòng)化測試系統(tǒng),其特征在于,用例腳本模塊中保存的用例 腳本以測試套為單位分類保存,每一個(gè)測試套中包含多個(gè)測試邏輯各不相同的測試用例, 同一個(gè)測試套中的測試用例可以使用相同的測試數(shù)據(jù)。
全文摘要
本發(fā)明提供了一種磁盤陣列的自動(dòng)化測試服務(wù)器,該自動(dòng)化測試服務(wù)器根據(jù)自動(dòng)化測試設(shè)計(jì)分層的思想,將測試腳本進(jìn)行分層、封裝,分為支撐腳本和用例腳本兩大層次支撐腳本以腳本包的方式提供給用例腳本使用,其作用是提供命令行,完成命令下發(fā),結(jié)果獲取、解釋、檢查等;用例腳本就是由測試工程師根據(jù)產(chǎn)品特性測試的需要,使用支撐腳本提供的命令編寫的用例。本發(fā)明還提供了一種磁盤陣列的自動(dòng)化測試系統(tǒng)。
文檔編號(hào)G06F11/22GK102063355SQ20101061346
公開日2011年5月18日 申請日期2010年12月20日 優(yōu)先權(quán)日2010年12月20日
發(fā)明者聶海斌 申請人:創(chuàng)新科存儲(chǔ)技術(shù)(深圳)有限公司, 創(chuàng)新科存儲(chǔ)技術(shù)有限公司