欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種存儲(chǔ)協(xié)議一致性測(cè)試方法及系統(tǒng)與流程

文檔序號(hào):11205950閱讀:613來(lái)源:國(guó)知局
一種存儲(chǔ)協(xié)議一致性測(cè)試方法及系統(tǒng)與流程

本發(fā)明涉及存儲(chǔ)系統(tǒng)技術(shù)領(lǐng)域,更具體地說(shuō),涉及一種存儲(chǔ)協(xié)議一致性測(cè)試方法及系統(tǒng)。



背景技術(shù):

存儲(chǔ)的協(xié)議有多種,如接口層協(xié)議sata(serialadvancedtechnologyattachment,串行高級(jí)技術(shù)附件)、scsi(smallcomputersysteminterface,小型計(jì)算機(jī)系統(tǒng)接口)、sas(statisticalanalysissystem,系統(tǒng)分析軟件)等,管理類協(xié)議有snmp(simplenetworkmanagementprotocol,簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)、smi-s(storagemanagementinitiativespecification,前沿存儲(chǔ)管理接口標(biāo)準(zhǔn))、restapi(representationalstatetransferapplicationprogramminginterface,表述性狀態(tài)傳遞應(yīng)用程序編程接口),文件共享類協(xié)議有nfs(networkfilesystem,網(wǎng)絡(luò)文件系統(tǒng))、cifs(commoninternetfilesystem,通用網(wǎng)絡(luò)文件系統(tǒng))、ftp(filetransferprotocol,文件傳輸協(xié)議)等。雖然協(xié)議定義各有不同,但相似協(xié)議在核心語(yǔ)義方面有極大的相似性,如smi-s和restapi。在測(cè)試角度看有兩個(gè)大的困難,一個(gè)是同一個(gè)協(xié)議要測(cè)試不同廠商的支持程度;另一個(gè)是為相似協(xié)議要編寫?yīng)毩⒌臏y(cè)試用例,工作量大,執(zhí)行測(cè)試時(shí)也有很多重復(fù)動(dòng)作。因此,如何提高存儲(chǔ)協(xié)議一致性的測(cè)試效率是一項(xiàng)亟待解決的問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明的目的在于提供一種存儲(chǔ)協(xié)議一致性測(cè)試方法,能夠有效提高存儲(chǔ)協(xié)議一致性的測(cè)試效率。

為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:

一種存儲(chǔ)協(xié)議一致性測(cè)試方法,包括:

基于通用協(xié)議包結(jié)構(gòu)層構(gòu)建協(xié)議模型;

將所述協(xié)議模型轉(zhuǎn)化為具體協(xié)議;

對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試。

優(yōu)選地,所述基于通用協(xié)議包結(jié)構(gòu)層構(gòu)建協(xié)議模型包括:

對(duì)所述協(xié)議模型進(jìn)行初始化;

對(duì)所述協(xié)議模型進(jìn)行結(jié)構(gòu)化定義;

對(duì)所述協(xié)議模型進(jìn)行幀格式定義。

優(yōu)選地,所述對(duì)所述協(xié)議模型進(jìn)行初始化具體為:

在測(cè)試用例被執(zhí)行前,完成與設(shè)備的認(rèn)證、握手和數(shù)據(jù)初始化。

優(yōu)選地,所述對(duì)所述協(xié)議模型進(jìn)行結(jié)構(gòu)化定義具體為:

對(duì)協(xié)議分層定義和協(xié)議報(bào)文格式定義。

優(yōu)選地,所述對(duì)所述協(xié)議模型進(jìn)行幀格式定義具體為:

將協(xié)議模型中的結(jié)構(gòu)化定義內(nèi)容封裝成在硬件平臺(tái)上傳輸?shù)母袷?,完成?duì)協(xié)議內(nèi)容的校驗(yàn)。

一種存儲(chǔ)協(xié)議一致性測(cè)試系統(tǒng),包括:

構(gòu)建模塊,用于基于通用協(xié)議包結(jié)構(gòu)層構(gòu)建協(xié)議模型;

轉(zhuǎn)化模塊,用于將所述協(xié)議模型轉(zhuǎn)化為具體協(xié)議;

測(cè)試模塊,用于對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試。

優(yōu)選地,所述構(gòu)建模塊包括:

初始化單元,用于對(duì)所述協(xié)議模型進(jìn)行初始化;

結(jié)構(gòu)化定義單元,用于對(duì)所述協(xié)議模型進(jìn)行結(jié)構(gòu)化定義;

幀格式定義單元,用于對(duì)所述協(xié)議模型進(jìn)行幀格式定義。

優(yōu)選地,所述初始化單元具體用于:在測(cè)試用例被執(zhí)行前,完成與設(shè)備的認(rèn)證、握手和數(shù)據(jù)初始化。

優(yōu)選地,所述結(jié)構(gòu)化定義單元具體用于:對(duì)協(xié)議分層定義和協(xié)議報(bào)文格式定義。

優(yōu)選地,所述幀格式定義單元具體用于:將協(xié)議模型中的結(jié)構(gòu)化定義內(nèi)容封裝成在硬件平臺(tái)上傳輸?shù)母袷?,完成?duì)協(xié)議內(nèi)容的校驗(yàn)。

由上述技術(shù)方案可知,本發(fā)明提供了存儲(chǔ)協(xié)議一致性測(cè)試方法,當(dāng)需要對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試時(shí),首先基于通用協(xié)議包結(jié)構(gòu)層構(gòu)建協(xié)議模型,然后將協(xié)議模型轉(zhuǎn)化為具體協(xié)議,然后對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試,本發(fā)明通過(guò)構(gòu)建協(xié)議模型,將協(xié)議模型轉(zhuǎn)化為具體協(xié)議,能夠有效提高存儲(chǔ)協(xié)議一致性的測(cè)試效率。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。

圖1為本發(fā)明公開的一種存儲(chǔ)協(xié)議一致性測(cè)試方法實(shí)施例1的方法流程圖;

圖2為本發(fā)明公開的一種存儲(chǔ)協(xié)議一致性測(cè)試方法方法實(shí)施例2的方法流程圖;

圖3為本發(fā)明公開的一種存儲(chǔ)協(xié)議一致性測(cè)試系統(tǒng)實(shí)施例1的結(jié)構(gòu)示意圖;

圖4為本發(fā)明公開的一種存儲(chǔ)協(xié)議一致性測(cè)試系統(tǒng)實(shí)施例2的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

為了更加特定地強(qiáng)調(diào)實(shí)施的獨(dú)立性,本說(shuō)明書涉及許多模塊或單元。舉例而言,模塊或單元可由硬件電路實(shí)現(xiàn),該硬件電路包括特制vlsi電路或門陣列,比如邏輯芯片、晶體管,或其它組件。模塊或單元也可在可編程的硬設(shè)備中實(shí)現(xiàn),比如場(chǎng)效可編程門陣列、可編程陣列邏輯、可編程邏輯設(shè)備等等。

模塊或單元也可在藉由各種形式的處理器所執(zhí)行的軟件中實(shí)現(xiàn)。比如說(shuō),一可執(zhí)行碼模塊可包括一個(gè)或多個(gè)實(shí)體的或邏輯的計(jì)算機(jī)指令區(qū)塊,該區(qū)塊可能形成為,比如說(shuō),對(duì)象、程序或函數(shù)。然而,鑒別模塊或單元的可執(zhí)行部分不需要物理上放置在一起,但可由存于不同位置的不同指令所組成,當(dāng)邏輯上組合在一起時(shí),形成模塊或單元且達(dá)到該模塊或單元所要求的目的。

實(shí)際上,可執(zhí)行碼模塊或單元可以是一單一指令或多個(gè)指令,甚至可以分布在位于不同的程序的數(shù)個(gè)不同的碼區(qū)段,并且橫跨數(shù)個(gè)存儲(chǔ)設(shè)備。同樣地,操作數(shù)據(jù)可被辨識(shí)及顯示于此模塊或單元中,并且可以以任何合適的形式實(shí)施且在任何合適的數(shù)據(jù)結(jié)構(gòu)形式內(nèi)組織。操作數(shù)據(jù)可以集合成單一數(shù)據(jù)集,或可分布在具有不同的存儲(chǔ)設(shè)備的不同的位置,且至少部分地只以電子信號(hào)方式存在于一系統(tǒng)或網(wǎng)絡(luò)。

本說(shuō)明書所提及的“實(shí)施例”或類似用語(yǔ)表示與實(shí)施例有關(guān)的特性、結(jié)構(gòu)或特征,包括在本發(fā)明的至少一實(shí)施例中。因此,本說(shuō)明書所出現(xiàn)的用語(yǔ)“在一實(shí)施例中”、“在實(shí)施例中”以及類似用語(yǔ)可能但不必然都指向相同實(shí)施例。

再者,本發(fā)明所述特性、結(jié)構(gòu)或特征可以以任何方式結(jié)合在一個(gè)或多個(gè)實(shí)施例中。以下說(shuō)明將提供許多特定的細(xì)節(jié),比如編程序、軟件模塊、用戶選擇、網(wǎng)絡(luò)交易、數(shù)據(jù)庫(kù)查詢、數(shù)據(jù)庫(kù)結(jié)構(gòu)、硬件模塊、硬件電路、硬件芯片等例子,以提供對(duì)本發(fā)明實(shí)施例的了解。然而相關(guān)領(lǐng)域的普通技術(shù)人員將看出本發(fā)明,即使沒(méi)有利用其中一個(gè)或多個(gè)特定細(xì)節(jié),或利用其它方法、組件、材料等亦可實(shí)施。另一方面,為避免混淆本發(fā)明,公知的結(jié)構(gòu)、材料或操作并沒(méi)有詳細(xì)描述。

如圖1所示,為本發(fā)明公開的一種存儲(chǔ)協(xié)議一致性測(cè)試方法實(shí)施例1的流程圖,本方法包括以下步驟:

s101、基于通用協(xié)議包結(jié)構(gòu)層構(gòu)建協(xié)議模型;

s102、將協(xié)議模型轉(zhuǎn)化為具體協(xié)議;

s103、對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試。

一般的協(xié)議棧結(jié)構(gòu)包括:硬件接口、協(xié)議編碼規(guī)則、協(xié)議包格式定義、協(xié)議語(yǔ)義、協(xié)議內(nèi)部分層結(jié)構(gòu)和協(xié)議狀態(tài)機(jī)和行為。其中,硬件接口:處理硬件接口的相關(guān)內(nèi)容,對(duì)于網(wǎng)口來(lái)說(shuō),這是傳輸層;協(xié)議編碼規(guī)則:一般是文本或者二進(jìn)制的編碼格式,這里僅僅處理基礎(chǔ)的編碼格式,比如bencode編碼、base64編碼等,與具體協(xié)議無(wú)關(guān);協(xié)議包格式定義:基于某種特定編碼規(guī)則形成的協(xié)議包格式定義,經(jīng)過(guò)軟件解碼后,一般形成一棵協(xié)議格式樹,存在于內(nèi)存中。這個(gè)協(xié)議樹對(duì)于協(xié)議處理以及協(xié)議相似性判定十分重要。協(xié)議語(yǔ)義:協(xié)議規(guī)范的,各個(gè)字段的具體含義;協(xié)議內(nèi)部分層結(jié)構(gòu):有些協(xié)議內(nèi)部也是分層的,比如傳輸層、會(huì)話層、事務(wù)層等;協(xié)議狀態(tài)機(jī)和行為:協(xié)議狀態(tài)機(jī)是任何協(xié)議都具有的,協(xié)議行為主要是協(xié)議的高層交互,也是協(xié)議必不可少的組成部分。

當(dāng)需要進(jìn)行存儲(chǔ)協(xié)議的一致性測(cè)試時(shí),在通用協(xié)議包結(jié)構(gòu)層進(jìn)行的相似模型定義,一個(gè)協(xié)議包在結(jié)構(gòu)上就是一棵樹,在該層上規(guī)范出了詳細(xì)的包結(jié)構(gòu),每一個(gè)新協(xié)議的到來(lái)都需要適配到通用協(xié)議包結(jié)構(gòu)上(主要逐個(gè)協(xié)議包做映射),映射的具體方法就是樹的操作:新節(jié)點(diǎn)的添加、節(jié)點(diǎn)的刪除、節(jié)點(diǎn)的合并。其中,新節(jié)點(diǎn)的添加:主要是協(xié)議能力擴(kuò)展,或者協(xié)議版本升級(jí)帶來(lái)的新功能。如restapi協(xié)議1.1比1.0在createsnapshot報(bào)文上增加了targetvolume字段,就在createsnapshot報(bào)文結(jié)構(gòu)樹上增加一個(gè)targetvolume字段。

節(jié)點(diǎn)的刪除:有些協(xié)議在擴(kuò)展時(shí)會(huì)廢棄某些字段,反應(yīng)在協(xié)議包結(jié)構(gòu)樹上就是刪除節(jié)點(diǎn)的操作。

節(jié)點(diǎn)的合并:有些協(xié)議在廢棄某些字段時(shí),不會(huì)改變?cè)M(jìn)制包的結(jié)構(gòu)。如協(xié)議1.0,字段1,長(zhǎng)度是4字節(jié),字段2長(zhǎng)度是2字節(jié)。在協(xié)議1.1中,字段2被刪除,但為了保證協(xié)議的兼容性,字段1的長(zhǎng)度變?yōu)?字節(jié)。在此種情況下我們就進(jìn)行節(jié)點(diǎn)的合并操作。

然后將相似協(xié)議模型轉(zhuǎn)化為具體協(xié)議,具體的,采用適配器完成適配的過(guò)程,適配器可以是獨(dú)立的節(jié)點(diǎn)或者是軟件模塊,在協(xié)議包生成后,發(fā)送前按照規(guī)則進(jìn)行修改,最終發(fā)送給被測(cè)存儲(chǔ)設(shè)備。該種方式類似于黑盒測(cè)試方式,通過(guò)修改輸出結(jié)果來(lái)實(shí)現(xiàn)新的測(cè)試用例生成。如果協(xié)議間存在繼承關(guān)系,那么就存在一個(gè)適配的協(xié)議棧,需要協(xié)議1到協(xié)議1.1,再到協(xié)議1.1.1層層適配。

綜上所述,在上述實(shí)施例中,當(dāng)需要對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試時(shí),首先基于通用協(xié)議包結(jié)構(gòu)層構(gòu)建協(xié)議模型,然后將協(xié)議模型轉(zhuǎn)化為具體協(xié)議,然后對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試,本發(fā)明通過(guò)構(gòu)建協(xié)議模型,將協(xié)議模型轉(zhuǎn)化為具體協(xié)議,能夠有效提高存儲(chǔ)協(xié)議一致性的測(cè)試效率。

如圖2所示,為本發(fā)明公開的一種存儲(chǔ)協(xié)議一致性測(cè)試方法實(shí)施例2的流程圖,本方法包括以下步驟:

s201、對(duì)協(xié)議模型進(jìn)行初始化;

s202、對(duì)協(xié)議模型進(jìn)行結(jié)構(gòu)化定義;

s203、對(duì)協(xié)議模型進(jìn)行幀格式定義;

當(dāng)需要對(duì)存儲(chǔ)協(xié)議進(jìn)行一致性測(cè)試時(shí),首先進(jìn)行協(xié)議模型的設(shè)計(jì),在設(shè)計(jì)協(xié)議模型時(shí),具體包括:模型初始化、結(jié)構(gòu)化定義和幀格式定義。其中,協(xié)議模型初始化:在測(cè)試用例被執(zhí)行前,完成與設(shè)備的認(rèn)證、握手、數(shù)據(jù)初始化等基礎(chǔ)性工作,其目的是使設(shè)備達(dá)到一個(gè)穩(wěn)定狀態(tài),以保證協(xié)議測(cè)試狀態(tài)的穩(wěn)定性和協(xié)議測(cè)試結(jié)果的準(zhǔn)確性。

結(jié)構(gòu)化定義:用于描述協(xié)議的通用化特征,完成對(duì)同類協(xié)議的抽象定義。協(xié)議模型的結(jié)構(gòu)化定義內(nèi)容主要包括:協(xié)議分層定義和協(xié)議報(bào)文格式定義。

幀格式定義:用于把協(xié)議模型的中的結(jié)構(gòu)化定義內(nèi)容封裝成可以在硬件平臺(tái)上可以傳輸?shù)母袷?,同時(shí)完成對(duì)協(xié)議內(nèi)容的校驗(yàn)。

s204、將協(xié)議模型轉(zhuǎn)化為具體協(xié)議;

協(xié)議的實(shí)例化功能負(fù)責(zé)把協(xié)議模型轉(zhuǎn)化為具體協(xié)議。具體功能包括:協(xié)議格式重組和編碼。協(xié)議格式重組功能負(fù)責(zé)刪除不支持的字段,增加協(xié)議模型沒(méi)有的字段,協(xié)議編碼功能負(fù)責(zé)根據(jù)具體協(xié)議的要求,把協(xié)議包編碼為二進(jìn)制或者文本格式,只有實(shí)例化的測(cè)試協(xié)議才能運(yùn)行測(cè)試用例。

s205、對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試。

系統(tǒng)的輸入是測(cè)試用例,一個(gè)測(cè)試用例一般是一個(gè)測(cè)試過(guò)程,最小應(yīng)包含一個(gè)請(qǐng)求和一個(gè)響應(yīng),兩條報(bào)文。經(jīng)過(guò)系統(tǒng)轉(zhuǎn)換,一個(gè)測(cè)試用例可以被自動(dòng)轉(zhuǎn)換為存儲(chǔ)協(xié)議1.0和1.1兩套測(cè)試用例,用以測(cè)試兩套不同的測(cè)試設(shè)備。過(guò)程如下:(1)輸入是一個(gè)測(cè)試用例;(2)系統(tǒng)執(zhí)行測(cè)試用例,從測(cè)試用例中發(fā)現(xiàn)被測(cè)被測(cè)設(shè)備的協(xié)議包,初始是最低版本1.0;(3)采用實(shí)例化方法,把協(xié)議包轉(zhuǎn)換成一個(gè)內(nèi)存中的協(xié)議樹;(4)根據(jù)不同的目標(biāo)設(shè)備來(lái)決定接下來(lái)是否轉(zhuǎn)化為1.1版本的協(xié)議包,還是就是測(cè)試1.0;(5)根據(jù)協(xié)議模型1.1中的定義,修改步驟(4)中的協(xié)議樹結(jié)構(gòu),使之轉(zhuǎn)化為協(xié)議包1.1;(6)生成1.1的包結(jié)構(gòu);(7)通過(guò)底層接口(ip或者fc)把1.1包或1.0包發(fā)送給正確的存儲(chǔ)設(shè)備。

綜上所述,本發(fā)明通過(guò)對(duì)相近協(xié)議或者同一協(xié)議的不同版本只需要編寫一套測(cè)試套,實(shí)現(xiàn)了測(cè)試套的高度復(fù)用,節(jié)約了人力成本,實(shí)現(xiàn)了存儲(chǔ)協(xié)議測(cè)試的自動(dòng)化。

如圖3所示,為本發(fā)明公開的一種存儲(chǔ)協(xié)議一致性測(cè)試系統(tǒng)實(shí)施例1的結(jié)構(gòu)示意圖,本系統(tǒng)包括:

構(gòu)建模塊301,用于基于通用協(xié)議包結(jié)構(gòu)層構(gòu)建協(xié)議模型;

轉(zhuǎn)化模塊302,用于將協(xié)議模型轉(zhuǎn)化為具體協(xié)議;

測(cè)試模塊303,用于對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試。

一般的協(xié)議棧結(jié)構(gòu)包括:硬件接口、協(xié)議編碼規(guī)則、協(xié)議包格式定義、協(xié)議語(yǔ)義、協(xié)議內(nèi)部分層結(jié)構(gòu)和協(xié)議狀態(tài)機(jī)和行為。其中,硬件接口:處理硬件接口的相關(guān)內(nèi)容,對(duì)于網(wǎng)口來(lái)說(shuō),這是傳輸層;協(xié)議編碼規(guī)則:一般是文本或者二進(jìn)制的編碼格式,這里僅僅處理基礎(chǔ)的編碼格式,比如bencode編碼、base64編碼等,與具體協(xié)議無(wú)關(guān);協(xié)議包格式定義:基于某種特定編碼規(guī)則形成的協(xié)議包格式定義,經(jīng)過(guò)軟件解碼后,一般形成一棵協(xié)議格式樹,存在于內(nèi)存中。這個(gè)協(xié)議樹對(duì)于協(xié)議處理以及協(xié)議相似性判定十分重要。協(xié)議語(yǔ)義:協(xié)議規(guī)范的,各個(gè)字段的具體含義;協(xié)議內(nèi)部分層結(jié)構(gòu):有些協(xié)議內(nèi)部也是分層的,比如傳輸層、會(huì)話層、事務(wù)層等;協(xié)議狀態(tài)機(jī)和行為:協(xié)議狀態(tài)機(jī)是任何協(xié)議都具有的,協(xié)議行為主要是協(xié)議的高層交互,也是協(xié)議必不可少的組成部分。

當(dāng)需要進(jìn)行存儲(chǔ)協(xié)議的一致性測(cè)試時(shí),在通用協(xié)議包結(jié)構(gòu)層進(jìn)行的相似模型定義,一個(gè)協(xié)議包在結(jié)構(gòu)上就是一棵樹,在該層上規(guī)范出了詳細(xì)的包結(jié)構(gòu),每一個(gè)新協(xié)議的到來(lái)都需要適配到通用協(xié)議包結(jié)構(gòu)上(主要逐個(gè)協(xié)議包做映射),映射的具體方法就是樹的操作:新節(jié)點(diǎn)的添加、節(jié)點(diǎn)的刪除、節(jié)點(diǎn)的合并。其中,新節(jié)點(diǎn)的添加:主要是協(xié)議能力擴(kuò)展,或者協(xié)議版本升級(jí)帶來(lái)的新功能。如restapi協(xié)議1.1比1.0在createsnapshot報(bào)文上增加了targetvolume字段,就在createsnapshot報(bào)文結(jié)構(gòu)樹上增加一個(gè)targetvolume字段。

節(jié)點(diǎn)的刪除:有些協(xié)議在擴(kuò)展時(shí)會(huì)廢棄某些字段,反應(yīng)在協(xié)議包結(jié)構(gòu)樹上就是刪除節(jié)點(diǎn)的操作。

節(jié)點(diǎn)的合并:有些協(xié)議在廢棄某些字段時(shí),不會(huì)改變?cè)M(jìn)制包的結(jié)構(gòu)。如協(xié)議1.0,字段1,長(zhǎng)度是4字節(jié),字段2長(zhǎng)度是2字節(jié)。在協(xié)議1.1中,字段2被刪除,但為了保證協(xié)議的兼容性,字段1的長(zhǎng)度變?yōu)?字節(jié)。在此種情況下我們就進(jìn)行節(jié)點(diǎn)的合并操作。

然后將相似協(xié)議模型轉(zhuǎn)化為具體協(xié)議,具體的,采用適配器完成適配的過(guò)程,適配器可以是獨(dú)立的節(jié)點(diǎn)或者是軟件模塊,在協(xié)議包生成后,發(fā)送前按照規(guī)則進(jìn)行修改,最終發(fā)送給被測(cè)存儲(chǔ)設(shè)備。該種方式類似于黑盒測(cè)試方式,通過(guò)修改輸出結(jié)果來(lái)實(shí)現(xiàn)新的測(cè)試用例生成。如果協(xié)議間存在繼承關(guān)系,那么就存在一個(gè)適配的協(xié)議棧,需要協(xié)議1到協(xié)議1.1,再到協(xié)議1.1.1層層適配。

綜上所述,在上述實(shí)施例中,當(dāng)需要對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試時(shí),首先基于通用協(xié)議包結(jié)構(gòu)層構(gòu)建協(xié)議模型,然后將協(xié)議模型轉(zhuǎn)化為具體協(xié)議,然后對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試,本發(fā)明通過(guò)構(gòu)建協(xié)議模型,將協(xié)議模型轉(zhuǎn)化為具體協(xié)議,能夠有效提高存儲(chǔ)協(xié)議一致性的測(cè)試效率。

如圖4所示,為本發(fā)明公開的一種存儲(chǔ)協(xié)議一致性測(cè)試系統(tǒng)實(shí)施例2的結(jié)構(gòu)示意圖,本系統(tǒng)包括:

初始化單元401,用于對(duì)協(xié)議模型進(jìn)行初始化;

結(jié)構(gòu)化定義單元402,用于對(duì)協(xié)議模型進(jìn)行結(jié)構(gòu)化定義;

幀格式定義單元403,用于對(duì)協(xié)議模型進(jìn)行幀格式定義;

當(dāng)需要對(duì)存儲(chǔ)協(xié)議進(jìn)行一致性測(cè)試時(shí),首先進(jìn)行協(xié)議模型的設(shè)計(jì),在設(shè)計(jì)協(xié)議模型時(shí),具體包括:模型初始化、結(jié)構(gòu)化定義和幀格式定義。其中,協(xié)議模型初始化:在測(cè)試用例被執(zhí)行前,完成與設(shè)備的認(rèn)證、握手、數(shù)據(jù)初始化等基礎(chǔ)性工作,其目的是使設(shè)備達(dá)到一個(gè)穩(wěn)定狀態(tài),以保證協(xié)議測(cè)試狀態(tài)的穩(wěn)定性和協(xié)議測(cè)試結(jié)果的準(zhǔn)確性。

結(jié)構(gòu)化定義:用于描述協(xié)議的通用化特征,完成對(duì)同類協(xié)議的抽象定義。協(xié)議模型的結(jié)構(gòu)化定義內(nèi)容主要包括:協(xié)議分層定義和協(xié)議報(bào)文格式定義。

幀格式定義:用于把協(xié)議模型的中的結(jié)構(gòu)化定義內(nèi)容封裝成可以在硬件平臺(tái)上可以傳輸?shù)母袷?,同時(shí)完成對(duì)協(xié)議內(nèi)容的校驗(yàn)。

轉(zhuǎn)化模塊404,用于將協(xié)議模型轉(zhuǎn)化為具體協(xié)議;

協(xié)議的實(shí)例化功能負(fù)責(zé)把協(xié)議模型轉(zhuǎn)化為具體協(xié)議。具體功能包括:協(xié)議格式重組和編碼。協(xié)議格式重組功能負(fù)責(zé)刪除不支持的字段,增加協(xié)議模型沒(méi)有的字段,協(xié)議編碼功能負(fù)責(zé)根據(jù)具體協(xié)議的要求,把協(xié)議包編碼為二進(jìn)制或者文本格式,只有實(shí)例化的測(cè)試協(xié)議才能運(yùn)行測(cè)試用例。

測(cè)試模塊405,用于對(duì)存儲(chǔ)協(xié)議的一致性進(jìn)行測(cè)試。

系統(tǒng)的輸入是測(cè)試用例,一個(gè)測(cè)試用例一般是一個(gè)測(cè)試過(guò)程,最小應(yīng)包含一個(gè)請(qǐng)求和一個(gè)響應(yīng),兩條報(bào)文。經(jīng)過(guò)系統(tǒng)轉(zhuǎn)換,一個(gè)測(cè)試用例可以被自動(dòng)轉(zhuǎn)換為存儲(chǔ)協(xié)議1.0和1.1兩套測(cè)試用例,用以測(cè)試兩套不同的測(cè)試設(shè)備。過(guò)程如下:(1)輸入是一個(gè)測(cè)試用例;(2)系統(tǒng)執(zhí)行測(cè)試用例,從測(cè)試用例中發(fā)現(xiàn)被測(cè)被測(cè)設(shè)備的協(xié)議包,初始是最低版本1.0;(3)采用實(shí)例化方法,把協(xié)議包轉(zhuǎn)換成一個(gè)內(nèi)存中的協(xié)議樹;(4)根據(jù)不同的目標(biāo)設(shè)備來(lái)決定接下來(lái)是否轉(zhuǎn)化為1.1版本的協(xié)議包,還是就是測(cè)試1.0;(5)根據(jù)協(xié)議模型1.1中的定義,修改步驟(4)中的協(xié)議樹結(jié)構(gòu),使之轉(zhuǎn)化為協(xié)議包1.1;(6)生成1.1的包結(jié)構(gòu);(7)通過(guò)底層接口(ip或者fc)把1.1包或1.0包發(fā)送給正確的存儲(chǔ)設(shè)備。

綜上所述,本發(fā)明通過(guò)對(duì)相近協(xié)議或者同一協(xié)議的不同版本只需要編寫一套測(cè)試套,實(shí)現(xiàn)了測(cè)試套的高度復(fù)用,節(jié)約了人力成本,實(shí)現(xiàn)了存儲(chǔ)協(xié)議測(cè)試的自動(dòng)化。

本說(shuō)明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。

對(duì)所公開的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
深水埗区| 新余市| 湘阴县| 南岸区| 于田县| 桐城市| 日照市| 高要市| 盈江县| 图木舒克市| 隆昌县| 古交市| 荆门市| 霍邱县| 南郑县| 即墨市| 陕西省| 寿阳县| 彩票| 金川县| 阜康市| 东兴市| 连山| 黄龙县| 农安县| 安溪县| 蕲春县| 芮城县| 黄冈市| 青海省| 内江市| 吉安市| 天气| 武隆县| 莱西市| 丹寨县| 富阳市| 阳谷县| 宜宾县| 大连市| 龙陵县|