專利名稱:平臺(tái)無關(guān)的自動(dòng)化測試用例及虛擬測試儀器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種平臺(tái)無關(guān)的自動(dòng)化測試用例及虛擬測試儀器。
背景技術(shù):
隨著通信技術(shù)的飛速發(fā)展,通信設(shè)備的高速度、高可靠性,對(duì)新產(chǎn)品的快速、高效的測試成為關(guān)鍵環(huán)節(jié)之一。由于自動(dòng)化能夠大大提高測試效率,節(jié)省人力資源,因而成為一種有效的解決方案。自動(dòng)化測試用例就被用來完成自動(dòng)化的測試工作。通常在開發(fā)自動(dòng)化測試用例時(shí),測試用例可以工作在某一個(gè)測試平臺(tái),但是一旦更改測試平臺(tái),必需更改相應(yīng)的測試用例,用來適應(yīng)新的測試平臺(tái)。這對(duì)于大量測試用例來說,是一個(gè)巨大工程,也降低了自動(dòng)化的效率。并且測試用例往往依賴真實(shí)測試平臺(tái),測試平臺(tái)資源的有限性給測試工作帶來了瓶頸,這就需要一個(gè)類似于真實(shí)測試平臺(tái)的工具來解決這個(gè)問題。中國專利申請(qǐng)200710138053. X,其提供一種通訊協(xié)議一致性測試中的虛擬測試方法,使用多臺(tái)虛擬測試儀器搭建邏輯測試結(jié)構(gòu),實(shí)現(xiàn)對(duì)被測協(xié)議進(jìn)行軟件(或系統(tǒng))測試。 在保證有效性、精確性的前提下,僅使用一臺(tái)測試器就可以實(shí)現(xiàn)對(duì)被測協(xié)議進(jìn)行軟件(或系統(tǒng))的測試。虛擬測試方法避免了各測試儀器之間復(fù)雜的測試協(xié)調(diào)過程,而且測試結(jié)果更可靠、更精確。該方案僅使用一臺(tái)測試儀器替代多臺(tái)測試儀器,在實(shí)現(xiàn)自動(dòng)化過程中,需要通過這臺(tái)測試儀器來模擬其它測試儀器,這就會(huì)給這臺(tái)模擬測試儀器增加復(fù)雜性,要為不同的測試儀器提供不同的接口。這對(duì)于自動(dòng)化測試用例,不能做到與平臺(tái)無關(guān),需要修改測試用例接口,給自動(dòng)化測試帶來復(fù)雜性。Linux開源軟件nemesis可以完成網(wǎng)絡(luò)包的封裝、發(fā)送,它以命令行的形式完成組包和發(fā)包的工作,簡單可用性成為網(wǎng)絡(luò)設(shè)備測試的選擇。盡管Linux開源軟件nemesis的簡單可用性能夠完成測試一起基本的組包功能, 但它很難用于實(shí)現(xiàn)自動(dòng)化。此外,它的功能少,只能組一些常見的包,靈活性比較差。有鑒于此,有必要提出一種不依賴于測試平臺(tái)的自動(dòng)化測試用例及能夠兼容多種測試儀器語言的虛擬測試儀器,使測試用例做到與測試平臺(tái)無關(guān),無需修改接口而實(shí)現(xiàn)自動(dòng)化測試的程度及效率。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種平臺(tái)無關(guān)的自動(dòng)化測試用例,其不依賴于測試儀器, 具有良好的移植性。本發(fā)明的目的在于提供一種可應(yīng)用上述平臺(tái)無關(guān)的自動(dòng)化測試用例的虛擬測試儀器,其減少測試成本并提高測試效率。為實(shí)現(xiàn)上述目的,本發(fā)明是關(guān)于一種平臺(tái)無關(guān)的自動(dòng)化測試用例,其可應(yīng)用于不同的測試儀器上完成對(duì)被測設(shè)備的測試。該平臺(tái)無關(guān)的自動(dòng)化測試用例包括針對(duì)不同的測試儀器創(chuàng)建的類,并可對(duì)不同的測試儀器不同的函數(shù)集進(jìn)行封裝成為統(tǒng)一接口。
作為本發(fā)明的進(jìn)一步改進(jìn),所述平臺(tái)無關(guān)的自動(dòng)化測試用例通過讀取拓?fù)鋱D來判斷測試儀器的類型,并針對(duì)測試儀器的類型創(chuàng)建相應(yīng)的類。作為本發(fā)明的進(jìn)一步改進(jìn),所述平臺(tái)無關(guān)的自動(dòng)化測試用例通過類調(diào)用統(tǒng)一接口并連接到不同的測試儀器實(shí)現(xiàn)測試功能。為實(shí)現(xiàn)上述目的,本發(fā)明是關(guān)于一種虛擬測試儀器,其可供平臺(tái)無關(guān)的自動(dòng)化測試用例實(shí)現(xiàn)對(duì)被測設(shè)備的測試。該虛擬測試儀器具有可被平臺(tái)無關(guān)的自動(dòng)化測試用例封裝成為統(tǒng)一接口的虛擬函數(shù)集并包括實(shí)現(xiàn)組包、發(fā)包、抓包、解包功能的報(bào)文處理模塊及與被測設(shè)備互連的設(shè)備互連模塊。作為本發(fā)明的進(jìn)一步改進(jìn),所述報(bào)文處理模塊包括合成包的組包模塊、發(fā)送包的發(fā)包模塊、接收包的抓包模塊及對(duì)包解封裝的解包模塊。作為本發(fā)明的進(jìn)一步改進(jìn),所述發(fā)包模塊支持單口發(fā)送及多口同時(shí)發(fā)送,以控制發(fā)包數(shù)量和發(fā)包速度。作為本發(fā)明的進(jìn)一步改進(jìn),所述抓包模塊對(duì)接收的包進(jìn)行存儲(chǔ)和統(tǒng)計(jì),并支持在端口設(shè)定過濾條件,選擇接收所需的包。作為本發(fā)明的進(jìn)一步改進(jìn),所述解包模塊可以解析收到的包的每個(gè)字段以認(rèn)定識(shí)別報(bào)文。作為本發(fā)明的進(jìn)一步改進(jìn),所述設(shè)備互連模塊包括許可遠(yuǎn)端登陸虛擬測試儀器進(jìn)行一系列操作的網(wǎng)口及用來與被測設(shè)備進(jìn)行互連并作為包的發(fā)送端和接收端的測試儀器接發(fā)口。本發(fā)明的有益效果是自動(dòng)化測試用例與測試平臺(tái)無關(guān),提高測試用例的可移植性并提高自動(dòng)化測試的效率。
圖1是本發(fā)明平臺(tái)無關(guān)的自動(dòng)化測試用例與測試儀器連接的流程圖;圖2是本發(fā)明虛擬測試儀器的結(jié)構(gòu)框圖。
具體實(shí)施例方式本發(fā)明的優(yōu)選實(shí)施方式中,不同的測試儀器(無論真實(shí)測試儀器S104還是虛擬測試儀器具有不同的內(nèi)部接口并具有本身的函數(shù)集,但是為了能夠被平臺(tái)無關(guān)的自動(dòng)化測試用例SlOl調(diào)用,本發(fā)明對(duì)不同的測試儀器S104、S105的函數(shù)集進(jìn)行封裝,形成封裝后的統(tǒng)一接口 S103并可以被平臺(tái)無關(guān)的自動(dòng)化測試用例SlOl調(diào)用。所以,統(tǒng)一接口 S103是封裝后的函數(shù)集,被平臺(tái)無關(guān)的自動(dòng)化測試用例SlOl調(diào)用。每個(gè)測試儀器S104、S105有本身的函數(shù)集,本發(fā)明對(duì)其封裝,最后形成統(tǒng)一接口 S103。本發(fā)明為每一測試儀器S104、S105設(shè)定一個(gè)類,該類由平臺(tái)無關(guān)的自動(dòng)化測試用例SlOl來創(chuàng)建。平臺(tái)無關(guān)的自動(dòng)化測試用例SlOl通過讀取拓?fù)鋱D(topo圖)S102來判斷即將使用的是真實(shí)測試儀器S104還是虛擬測試儀器S105,然后創(chuàng)建與該測試儀器S104、 S105相應(yīng)的類的對(duì)象。平臺(tái)無關(guān)的自動(dòng)化測試用例SlOl通過類調(diào)用統(tǒng)一接口 S103連接到測試儀器。如果該類是與真實(shí)測試儀器S104相對(duì)應(yīng)的,則連接到真實(shí)測試儀器S104,然后調(diào)用真實(shí)測試儀器S104的接口去組包、發(fā)包、抓包、解包來實(shí)現(xiàn)測試功能。如果該類是與虛擬測試儀器 S105相對(duì)應(yīng)的,則連接到虛擬測試儀器S105,然后調(diào)用虛擬測試儀器S 105的接口去組包、 發(fā)包、抓包、解包來實(shí)現(xiàn)測試功能。因此,本發(fā)明優(yōu)選實(shí)施方式中,雖然每個(gè)類對(duì)應(yīng)調(diào)用的統(tǒng)一接口 S103是一樣的,但是其內(nèi)部實(shí)現(xiàn)過程是不同的,比如真實(shí)測試儀器(IXIA)S104調(diào)用真實(shí)測試儀器 S104 (IXIA)的函數(shù)集,虛擬測試儀器S105調(diào)用虛擬測試儀器S105的函數(shù)集,但對(duì)于外部使用者來說,真實(shí)測試儀器S104或者虛擬測試儀器S105對(duì)外是一樣的統(tǒng)一接口 S103,這樣無論更換什么樣的測試儀器,只需要增加一個(gè)由平臺(tái)無關(guān)的自動(dòng)化測試用例S 101創(chuàng)建的這個(gè)測試儀器的類,然后在類調(diào)用的統(tǒng)一接口 S103里去實(shí)現(xiàn)它的功能函數(shù),這樣我們就不需要去改變測試用例。針對(duì)一些測試儀器無法實(shí)現(xiàn)的功能和模擬測試環(huán)境的需要,本發(fā)明提供上述虛擬測試儀器S105,其不但可以實(shí)現(xiàn)真實(shí)測試儀器S104的功能,更重要的是,它可以靈活組成各種需求的包,比如OSPF (Open Shortest Path First,接口狀態(tài)路由協(xié)議)、RIP (Routing information Protocol, 1 ^ff) >CFM(Connectivity Fault Management,3 ^ 管理)及EFM(Ethernet in the FirstMile,第一英里以太網(wǎng))報(bào)文,這些包對(duì)于網(wǎng)絡(luò)測試非常重要。圖2為本發(fā)明虛擬測試儀器S105的基本結(jié)構(gòu)圖,其主要包括兩個(gè)主要模塊,一是與其它模擬設(shè)備互連的設(shè)備互聯(lián)模塊S203,其提供telnet網(wǎng)口 S208及測試儀器收發(fā)口 S209 ;二是報(bào)文處理模塊S202,也可以稱為包處理引擎,其包括組包模塊S204、發(fā)包模塊 S205、抓包模塊S206及解包模塊S207。組包模塊S204 負(fù)責(zé)包的合成,由于靈活的組包方式,它可以組成各種需要的包, 然后提供組這種包的接口,給自動(dòng)化提供了巨大的方便。發(fā)包模塊S205 負(fù)責(zé)包的發(fā)送,可支持單口發(fā)送,多口同時(shí)發(fā)送,控制發(fā)包數(shù)量和發(fā)包速度。抓包模塊S206 負(fù)責(zé)包的接收,對(duì)接收包的存儲(chǔ)存和統(tǒng)計(jì),可以支持在端口設(shè)定過濾條件,選擇接收所需要的包。解包模塊S207 負(fù)責(zé)對(duì)接收到的包進(jìn)行解封裝,可以解析收到包的每個(gè)字段,以便認(rèn)定這個(gè)報(bào)文是什么報(bào)文,為報(bào)文字段的確認(rèn)提供了方便。telnet 口 S208 負(fù)責(zé)遠(yuǎn)端登陸到本發(fā)明虛擬測試儀器S105,然后對(duì)虛擬測試儀器 S105進(jìn)行一系列的操作。Chassis 口 S209 主要用來和其它被測設(shè)備進(jìn)行互連,是包的發(fā)送端和接收端。以下是本發(fā)明虛擬測試儀器S105的報(bào)文處理模塊S202的組包、發(fā)包、抓包及解包的實(shí)現(xiàn)過程組包實(shí)現(xiàn)每個(gè)協(xié)議段有兩個(gè)數(shù)據(jù)結(jié)構(gòu)與它對(duì)應(yīng),用來保存配置信息和組包時(shí)的位置信息和變化信息,組包時(shí),用鏈表把各個(gè)協(xié)議段連接起來,然后把這個(gè)數(shù)據(jù)連拷貝到某個(gè)端口的某個(gè)Mream(數(shù)據(jù)流)上.再調(diào)用發(fā)包函數(shù)來發(fā)送數(shù)據(jù)報(bào)文。發(fā)包過程創(chuàng)建socket (套接字),打開socket,取出一個(gè)stream,組包,發(fā)送數(shù)據(jù)包,更新數(shù)據(jù)包,再發(fā)送,直到發(fā)送結(jié)束,取出下一個(gè)stream發(fā)送,直到發(fā)送了所有的 stream,關(guān)閉 socket,冊(cè)!J除 socket。
抓包過程設(shè)置單獨(dú)的收包線程,利用Iibpcap (開源收包軟件)開始收包,把收到的數(shù)據(jù)包存入一個(gè)緩存文件里,便于以后取出收到的數(shù)據(jù)報(bào)文進(jìn)行分析。解包過程每個(gè)協(xié)議段有個(gè)數(shù)據(jù)結(jié)構(gòu)與它對(duì)應(yīng),保存配置信息,根據(jù)報(bào)文的內(nèi)容, 從前向后逐層解包,把解包的內(nèi)容填入每個(gè)協(xié)議段相對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)之中。特別需要指出的是,本發(fā)明具體實(shí)施方式
中僅以該平臺(tái)無關(guān)的自動(dòng)化測試用例及虛擬測試儀器作為示例,在實(shí)際應(yīng)用中任何類型的平臺(tái)無關(guān)的測試用例及虛擬測試儀器均適用本發(fā)明揭示的原理。對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在本發(fā)明的教導(dǎo)下所作的針對(duì)本發(fā)明的等效變化,仍應(yīng)包含在本發(fā)明權(quán)利要求所主張的范圍中。
權(quán)利要求
1.一種平臺(tái)無關(guān)的自動(dòng)化測試用例,其可應(yīng)用于不同的測試儀器上完成對(duì)被測設(shè)備的測試,其特征在于其包括針對(duì)不同的測試儀器創(chuàng)建的類,并可對(duì)不同的測試儀器不同的函數(shù)集進(jìn)行封裝成為統(tǒng)一接口。
2.如權(quán)利要求1所述的平臺(tái)無關(guān)的自動(dòng)化測試用例,其特征在于,其通過讀取拓?fù)鋱D來判斷測試儀器的類型,并針對(duì)測試儀器的類型創(chuàng)建相應(yīng)的類。
3.如權(quán)利要求2所述的平臺(tái)無關(guān)的自動(dòng)化測試用例,其特征在于,其通過類調(diào)用統(tǒng)一接口并連接到不同的測試儀器實(shí)現(xiàn)測試功能。
4.一種虛擬測試儀器,其可供平臺(tái)無關(guān)的自動(dòng)化測試用例實(shí)現(xiàn)對(duì)被測設(shè)備的測試,其特征在于其具有可被平臺(tái)無關(guān)的自動(dòng)化測試用例封裝成為統(tǒng)一接口的虛擬函數(shù)集并包括實(shí)現(xiàn)組包、發(fā)包、抓包、解包功能的報(bào)文處理模塊及與被測設(shè)備互連的設(shè)備互連模塊。
5.如權(quán)利要求4所述的虛擬測試儀器,其特征在于,所述報(bào)文處理模塊包括合成包的組包模塊、發(fā)送包的發(fā)包模塊、接收包的抓包模塊及對(duì)包解封裝的解包模塊
6.如權(quán)利要求5所述的虛擬測試儀器,其特征在于,所述發(fā)包模塊支持單口發(fā)送及多口同時(shí)發(fā)送,以控制發(fā)包數(shù)量和發(fā)包速度。
7.如權(quán)利要求5所述的虛擬測試儀器,其特征在于,所述抓包模塊對(duì)接收的包進(jìn)行存儲(chǔ)和統(tǒng)計(jì),并支持在端口設(shè)定過濾條件,選擇接收所需的包。
8.如權(quán)利要求5所述的虛擬測試儀器,其特征在于,解包模塊可以解析收到的包的每個(gè)字段以認(rèn)定識(shí)別報(bào)文。
9.如權(quán)利要求4所述的虛擬測試儀器,其特征在于,所述設(shè)備互連模塊包括許可遠(yuǎn)端登陸虛擬測試儀器進(jìn)行一系列操作的網(wǎng)口及用來與被測設(shè)備進(jìn)行互連并作為包的發(fā)送端和接收端的測試儀器接發(fā)口。
全文摘要
本發(fā)明關(guān)于一種平臺(tái)無關(guān)的自動(dòng)化測試用例,其可應(yīng)用于不同的測試儀器上完成對(duì)被測設(shè)備的測試。該平臺(tái)無關(guān)的自動(dòng)化測試用例包括針對(duì)不同的測試儀器創(chuàng)建的類,并可對(duì)不同的測試儀器不同的函數(shù)集進(jìn)行封裝成為統(tǒng)一接口。本發(fā)明平臺(tái)無關(guān)的自動(dòng)化測試用例通過封裝不同測試儀器的函數(shù)集成為統(tǒng)一接口,做到與平臺(tái)無關(guān),提高可移植性及測試效率。
文檔編號(hào)H04L12/26GK102377609SQ20101025525
公開日2012年3月14日 申請(qǐng)日期2010年8月17日 優(yōu)先權(quán)日2010年8月17日
發(fā)明者單哲, 徐錦韜, 方沛昱, 楊曙軍, 趙茂聰 申請(qǐng)人:盛科網(wǎng)絡(luò)(蘇州)有限公司