最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

測(cè)試網(wǎng)絡(luò)通信中的通信協(xié)議的方法和系統(tǒng)的制作方法

文檔序號(hào):7635492閱讀:287來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):測(cè)試網(wǎng)絡(luò)通信中的通信協(xié)議的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于測(cè)試諸如Internet網(wǎng)絡(luò)中使用的通信協(xié)議的方法 和系統(tǒng)。更具體地,本發(fā)明涉及一種用于測(cè)試設(shè)備的相容性和強(qiáng)健性的測(cè) 試方法和系統(tǒng),該設(shè)備使用一特定的信令協(xié)議與使用相同信令協(xié)議的其他 設(shè)備進(jìn)行通信,具體地,例如會(huì)話(huà)啟動(dòng)協(xié)議(SIP)。
背景技術(shù)
例如通過(guò)因特網(wǎng)(internet)運(yùn)行的網(wǎng)絡(luò)通信,需要一個(gè)信令協(xié)議來(lái)建立上 線(xiàn)通知(presence)、査找用戶(hù)、啟動(dòng)、修改或終止會(huì)話(huà)。目前的受歡迎的 一個(gè)信令協(xié)議是會(huì)話(huà)啟動(dòng)協(xié)議(SIP)。這是用于網(wǎng)絡(luò)會(huì)議、電話(huà)、上線(xiàn)通 知、事件通知和即時(shí)發(fā)送消息的協(xié)議。SIP是在IETF MMUSIC (多方多媒 體會(huì)話(huà)控制)工作組內(nèi)開(kāi)發(fā)的,并從那時(shí)起迅速成為各種形式的基于IP網(wǎng) 絡(luò)的多媒體通信的基本構(gòu)建模塊。為此,SIP啟動(dòng)實(shí)體(使用SIP作為信令 的設(shè)備)必須滿(mǎn)足全I(xiàn)P環(huán)境帶來(lái)的新的挑戰(zhàn)和威脅,必須通過(guò)及時(shí)測(cè)試確 保其相容性和強(qiáng)健性。
為了確保SIP實(shí)體中的SIP實(shí)現(xiàn)符合標(biāo)準(zhǔn)并且沒(méi)有缺陷導(dǎo)致系統(tǒng)安全 妥協(xié)和/或不希望的系統(tǒng)癱瘓,應(yīng)該在配置之前進(jìn)行全面的測(cè)試。目前商業(yè) 上可得到多種測(cè)試工具。這些測(cè)試器的例子可以從下述網(wǎng)址找到。
www.testingtech.de/products/ttsuite_sip.php;
www.solinet.com/sip_conf tester.htm; www.codenomicon.com/testtools/sip/index.html
可得到的測(cè)試方法需要寫(xiě)復(fù)雜腳本命令和程序的技巧和努力,并僅限 于測(cè)試兩個(gè)SIP實(shí)體之間的通信。
因此,需要更簡(jiǎn)單和更經(jīng)濟(jì)的方法來(lái)在網(wǎng)絡(luò)通信上執(zhí)行全面測(cè)試,該 通信可能涉及多于兩個(gè)實(shí)體。

發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的在于提供一種新的方法和系統(tǒng),用于測(cè)試使用一特 定信令協(xié)議(如SIP)的特定網(wǎng)絡(luò)的一個(gè)實(shí)體,該方法和系統(tǒng)能夠測(cè)試基于 該協(xié)議及包含連接到該網(wǎng)絡(luò)的數(shù)個(gè)實(shí)體的復(fù)雜的網(wǎng)絡(luò)通信。本發(fā)明的另一 H的在于提供一個(gè)測(cè)試架構(gòu),該測(cè)試架構(gòu)使用基于模板的測(cè)試腳本命令, 該命令的書(shū)寫(xiě)更簡(jiǎn)單,不使用復(fù)雜的編程結(jié)構(gòu),該測(cè)試架構(gòu)還提供一種靈 活、可擴(kuò)展的、可升級(jí)的、可定制的、用戶(hù)化的并易于使用的測(cè)試方法。
本發(fā)明的這個(gè)和其他目的是通過(guò)提供一個(gè)測(cè)試架構(gòu)達(dá)到的,該測(cè)試架
構(gòu)(i)使用簡(jiǎn)單腳本命令,較好地,基于模板的文本文件腳本命令;(ii) 具有一個(gè)稱(chēng)為"測(cè)試指導(dǎo)(TestDirector)"的集中測(cè)試控制器;(iii)具有一 個(gè)或多個(gè)稱(chēng)作"談判器"的測(cè)試客戶(hù)。測(cè)試指導(dǎo)和談判器都是軟件實(shí)現(xiàn)的, 可以運(yùn)行在單獨(dú)的計(jì)算機(jī)或幾個(gè)計(jì)算機(jī)中。測(cè)試指導(dǎo)與所有談判器有連接 關(guān)系,以便它可以向談判器發(fā)布命令。所有談判器和受測(cè)試系統(tǒng)(此后稱(chēng) 作SUT)連接到同一網(wǎng)絡(luò),它們根據(jù)諸如TCP或UDP的協(xié)議通信。對(duì)于
本發(fā)明的測(cè)試架構(gòu),SUT可以為使用測(cè)試中的信令協(xié)議的任何的實(shí)體。例
如,對(duì)于SIP測(cè)試架構(gòu),SUT可以是任何SIP啟動(dòng)實(shí)體,例如SIP代理、 SIP重定向服務(wù)器、SIP電話(huà)、SIP電視等。
本發(fā)明的各種新穎特征在后附的權(quán)利要求中特別指出并構(gòu)成此公開(kāi)內(nèi) 容的一部分。為了更好地理解本發(fā)明、其操作優(yōu)點(diǎn)、使用本發(fā)明獲得的具 體目的,應(yīng)參考附圖和下面的說(shuō)明書(shū),其中說(shuō)明了本發(fā)明的優(yōu)選實(shí)施例。


圖1是顯示本發(fā)明的測(cè)試架構(gòu)的基本結(jié)構(gòu)的靜態(tài)視圖2是圖1中的測(cè)試架構(gòu)工作中的視圖3是顯示本發(fā)明的測(cè)試架構(gòu)的高級(jí)工作流程的流程圖4是顯示圖3中的流程圖的方塊A5內(nèi)的細(xì)節(jié)的流程圖; 圖5是顯示圖4中的流程圖的方塊A5-4內(nèi)的細(xì)節(jié)的流程圖; 圖6顯示了測(cè)試用例的層次結(jié)構(gòu)的例子。
具體實(shí)施例方式
本發(fā)明的測(cè)試架構(gòu)的基本結(jié)構(gòu)
參考圖l,這是典型的用于測(cè)試SIP實(shí)體的測(cè)試架構(gòu)的基本結(jié)構(gòu)。該 基本結(jié)構(gòu)包括SUT 10 (受測(cè)試系統(tǒng))、兩個(gè)談判器11和12 (分別運(yùn)行于不 同計(jì)算機(jī)上)。SUT lO和談判器ll、 12利用連接方式20連接到同一網(wǎng)絡(luò) 30,連接方式20基于TCP或者UDP。此外,談判器ll、 12通過(guò)任何預(yù)定 的控制協(xié)議連接到測(cè)試指導(dǎo)(TestDirector)13,該預(yù)定的控制協(xié)議可以由本領(lǐng)
域技術(shù)人員容易地設(shè)計(jì)和實(shí)施,由此接收來(lái)自測(cè)試指導(dǎo)13的命令。談判器 和測(cè)試指導(dǎo)都是軟件實(shí)現(xiàn)的,可以由計(jì)算機(jī)編程人員使用合適的計(jì)算機(jī)編
程語(yǔ)言書(shū)寫(xiě),例如basic、 pascal/delphi、 c/c++、 java、 c弁等等(這里只例舉 了幾種)。雖然談判器和測(cè)試指導(dǎo)在圖1中顯示運(yùn)行在分開(kāi)的計(jì)算機(jī)上,它 們可以實(shí)施運(yùn)行在一個(gè)計(jì)算機(jī)上,其中每個(gè)談判器和測(cè)試指導(dǎo)具有其各自 分配的網(wǎng)絡(luò)端口號(hào)。無(wú)論談判器和測(cè)試指導(dǎo)是運(yùn)行在相同還是不同的計(jì)算 機(jī)上,他們都可以取回存儲(chǔ)在同一源14中的文件。典型的文件包括但不限 于(1)談判器和測(cè)試指導(dǎo)的配置文件,(2)用于定義測(cè)試用例的屏幕播 放文件;(3)用于支持屏幕播放文件的消息文件。SUT是測(cè)試的主體,對(duì) 于此特定SIP測(cè)試架構(gòu)來(lái)說(shuō),SUT可以是任何SIP實(shí)體。當(dāng)然,該架構(gòu)可 以容易地被普通技術(shù)人員采用來(lái)測(cè)試其他信令協(xié)議。
圖2顯示了當(dāng)測(cè)試指導(dǎo)正在執(zhí)行典型的測(cè)試時(shí)發(fā)生的事情。測(cè)試指導(dǎo) 檢測(cè)何時(shí)談判器開(kāi)始執(zhí)行測(cè)試。在測(cè)試開(kāi)始前,必須準(zhǔn)備好3種類(lèi)型的文 件,以便由測(cè)試指導(dǎo)和談判器取用配置文件、屏幕播放文件和消息文件。 這些文件將在后面詳述。
配置文件包括測(cè)試指導(dǎo)和所有談判器的配置信息(profile)。測(cè)試指導(dǎo) 的配置信息包含網(wǎng)絡(luò)地址(IP地址和端口號(hào)),通過(guò)網(wǎng)絡(luò)地址可以聯(lián)絡(luò)到測(cè) 試指導(dǎo)。談判器的配置信息包括網(wǎng)絡(luò)地址和其它用戶(hù)定義的特性,在網(wǎng)絡(luò) 地址上談判器可以?xún)A聽(tīng)進(jìn)入的SIP流量,用戶(hù)可以定義的特性的數(shù)量是無(wú) 限的。
測(cè)試用例的屏幕播放文件包括一些指令,關(guān)于談判器應(yīng)該做什么和它
們以怎樣的順序執(zhí)行測(cè)試。文件的句法和格式將在后面部分討論。
消息文件是文本文件,包括SIP消息模板,談判器將要用于發(fā)送SIP
消息以及比較它們實(shí)際收到的SIP消息。
當(dāng)談判器執(zhí)行測(cè)試時(shí),它們實(shí)際上執(zhí)行設(shè)置在屏幕播放文件中的用于
測(cè)試的指令。在特定的實(shí)施例中,有兩種類(lèi)型的指令,即"發(fā)送"(SEND) 和"接收"(RECEIVE)。換句話(huà)說(shuō),談判器或者發(fā)送消息到網(wǎng)絡(luò)中的SUT 或其他實(shí)體,或者等待從SUT或其他實(shí)體接收消息。如果條件允許談判器 執(zhí)行完成其指令,談判器將發(fā)送一個(gè)"通過(guò)"(PASS)信號(hào)到測(cè)試指導(dǎo),告 訴測(cè)試指導(dǎo)談判器已經(jīng)成功地完成了自己的職責(zé)。另一方面,如果條件不 允許談判器繼續(xù)執(zhí)行(例如當(dāng)希望的消息沒(méi)有按時(shí)到達(dá)),談判器將發(fā)送"失 敗"(FAILURE)信號(hào)到測(cè)試指導(dǎo),告訴測(cè)試指導(dǎo)實(shí)際發(fā)生了什么問(wèn)題。當(dāng) 然,需要時(shí),更多類(lèi)型的指令可以由本領(lǐng)域的技術(shù)人員實(shí)現(xiàn)。
當(dāng)執(zhí)行測(cè)試時(shí),測(cè)試指導(dǎo)整理從各談判器收集的報(bào)告。 一旦測(cè)試結(jié)束, 測(cè)試指導(dǎo)告訴所有談判器停止并在屏幕上顯示測(cè)試結(jié)果。
圖3顯示了本發(fā)明的測(cè)試架構(gòu)的高級(jí)工作流程圖。流程圖中每個(gè)方塊 的詳細(xì)說(shuō)明如下。
Al:軟件程序測(cè)試指導(dǎo)在計(jì)算機(jī)上由用戶(hù)(可以為一個(gè)人或者另一軟 件程序)啟動(dòng)。用戶(hù)還要向測(cè)試指導(dǎo)指定要執(zhí)行的測(cè)試用例集合。測(cè)試指 導(dǎo)從公共數(shù)據(jù)源讀取配置信息并從配置信息確定它將在什么網(wǎng)絡(luò)地址(典 型地,網(wǎng)絡(luò)地址由IP地址和端口號(hào)構(gòu)成)上傾聽(tīng)談判器,以便聯(lián)絡(luò)用于后 面的注冊(cè)。然后,測(cè)試指導(dǎo)在該網(wǎng)絡(luò)地址上傾聽(tīng)。
A2: —個(gè)或多個(gè)軟件程序談判器由同一計(jì)算機(jī)或其它計(jì)算機(jī)上的用戶(hù) (可以為一個(gè)人或者另一軟件程序)啟動(dòng)。用戶(hù)還向談判器指示它將作為 什么角色。例如, 一個(gè)談判器作為談判器A;而另一個(gè)談判器作為談判器B。 每個(gè)談判器從公共數(shù)據(jù)源讀取自己的配置信息、其它談判器的配置信息和 測(cè)試指導(dǎo)的配置信息,并確定它將采取什么特性及網(wǎng)絡(luò)地址來(lái)聯(lián)絡(luò)測(cè)試指 導(dǎo)。然后,每個(gè)談判器將聯(lián)絡(luò)測(cè)試指導(dǎo)以向其注冊(cè)自己。 一旦測(cè)試指導(dǎo)接 受它們的注冊(cè), 一個(gè)預(yù)定的通信通道將在測(cè)試指導(dǎo)和每個(gè)談判器之間建立。 通信通道,例如可以利用java的RMI (遠(yuǎn)程方法調(diào)用)技術(shù)實(shí)現(xiàn),用于在 執(zhí)行測(cè)試期間,測(cè)試指導(dǎo)發(fā)布命令到各談判器及用于談判器提交它們的測(cè) 試報(bào)告或反饋到測(cè)試指導(dǎo)。當(dāng)然通信通道可以由其它方法實(shí)現(xiàn),并且其實(shí) 現(xiàn)是在本領(lǐng)域的技術(shù)人員的普通技術(shù)范圍內(nèi)。
A3:根據(jù)用戶(hù)指定的測(cè)試用例集合,測(cè)試指導(dǎo)確定下一個(gè)要運(yùn)行的測(cè) 試用例(testcase)。例如,如果用戶(hù)指定測(cè)試用例T01 、 T02和T03需要執(zhí) 行,測(cè)試指導(dǎo)就將確定哪個(gè)測(cè)試用例在第一、第二和第三運(yùn)行。對(duì)于一個(gè) 特定實(shí)施方案,可以基于字母順序作決定。
A4:如果用戶(hù)希望,則測(cè)試指導(dǎo)運(yùn)行由用戶(hù)提供的一個(gè)腳本命令(例 如,shell命令、bat命令、perl命令或其它可執(zhí)行文件)。腳本命令存儲(chǔ)在 公共數(shù)據(jù)源中。典型地,腳本命令用于開(kāi)始和停止SUT (受測(cè)系統(tǒng)),以便 確保SUT在每個(gè)測(cè)試用例開(kāi)始時(shí)具有干凈的狀態(tài)。但是從技術(shù)角度來(lái)說(shuō), 腳本命令可以執(zhí)行用戶(hù)需要的任何任務(wù)。如果用戶(hù)已經(jīng)選擇不運(yùn)行該腳本 命令,將跳過(guò)這一步驟。以下是這樣的腳本命令的例子
"sw^Xcf/.s/z加W TO,,
其中,wZ^"—""/2為腳本名,start禾QTOl為傳給該腳本的變量。T01 為要執(zhí)行的須ij試用例的名稱(chēng)。
A5:測(cè)試指導(dǎo)與談判器協(xié)調(diào)來(lái)執(zhí)行測(cè)試用例。此步驟的詳細(xì)內(nèi)容參見(jiàn) 圖4。
A6:如果用戶(hù)希望,則測(cè)試指導(dǎo)運(yùn)行該用戶(hù)提供的一個(gè)腳本命令(例
如,shell命令、bat命令、perl命令或其它可執(zhí)行文件)。這是類(lèi)似于A4的 可選步驟。例如可以運(yùn)行下面的腳本命令來(lái)停止SUT: "jwZy'eC—"/.A加/ 7W,
其中subject一ctl.sh為腳本名,stop和T01為傳給該腳本的變量。T01 為己經(jīng)執(zhí)行的測(cè)試用例的名稱(chēng)。
A7:測(cè)試指導(dǎo)確定是否已經(jīng)執(zhí)行完用戶(hù)指定的所有測(cè)試用例。如果還
有要執(zhí)行的測(cè)試用例,將返回到A3。如果已經(jīng)執(zhí)行了所有測(cè)試用例,將前 進(jìn)到A8。
A8:測(cè)試指導(dǎo)計(jì)算匯總測(cè)試結(jié)果,并顯示給用戶(hù)。對(duì)于一個(gè)特定的實(shí) 施方案,該匯總包括執(zhí)行的測(cè)試用例的總數(shù)、通過(guò)的測(cè)試用例的數(shù)量和失 敗的測(cè)試用例的數(shù)量。需要時(shí)可以考慮該匯總可以包括其它的信息。
"顯示" 一詞是指程序向用戶(hù)傳達(dá)某些信息的機(jī)制。例如可以通過(guò)在計(jì) 算機(jī)屏幕上輸出信息、在紙上打印信息或經(jīng)揚(yáng)聲器播發(fā)消息來(lái)實(shí)現(xiàn)。
A9:測(cè)試指導(dǎo)經(jīng)A2中建立的通信通道發(fā)布"DISMISS"命令到所有 參與的談判器,以便命令它們?nèi)科届o地退出。談判器遵守該命令退出。
然后,測(cè)試指導(dǎo)自己也退出。
圖4詳細(xì)顯示了圖3中流程圖的方塊A5的內(nèi)容。圖4中的每個(gè)方塊如
下進(jìn)一步說(shuō)明。
A5-l:測(cè)試指導(dǎo)從屏幕播放文件確定哪些談判器將參與要執(zhí)行的測(cè)試
用例。然后它經(jīng)A2中建立的通信通道發(fā)布"GET READY"命令及測(cè)試用 例的唯一標(biāo)識(shí)符(例如測(cè)試用例的名稱(chēng))到每個(gè)參與的談判器,以便命令 它們準(zhǔn)備好執(zhí)行測(cè)試用例。
A5-2:接收到準(zhǔn)備好(GETREADY)命令后,每個(gè)參與的談判器將測(cè) 試用例的屏幕播放文件及屏幕播放文件中涉及的相應(yīng)的消息文件裝載到存 儲(chǔ)器中以便實(shí)際執(zhí)行期間使用。
A5-3:當(dāng)所有的參與的談判器都準(zhǔn)備好時(shí),測(cè)試指導(dǎo)經(jīng)A2中建立的通 信通道發(fā)布一個(gè)"行動(dòng)(ACTION)"命令到每個(gè)談判器,以便命令它們開(kāi) 始執(zhí)行測(cè)試用例。
A5-4:收到ACTION命令后,每個(gè)談判器通過(guò)執(zhí)行屏幕播放文件中與 其相關(guān)的指令并忽略其它的指令來(lái)履行它們的職責(zé)。
如果一個(gè)談判器可以無(wú)差錯(cuò)地執(zhí)行屏幕播放文件中的所有相關(guān)指令, 它將經(jīng)A2中建立的通信通道提交一個(gè)"通過(guò)(PASS)"報(bào)告給測(cè)試指導(dǎo), 告訴測(cè)試指導(dǎo)已經(jīng)完成了預(yù)期的任務(wù)。
但是,當(dāng)談判器遭遇意外的情況(例如期望的消息始終未到)時(shí),它 將經(jīng)A2中建立的通信通道提交一個(gè)"失敗(FAIL)"報(bào)告給測(cè)試指導(dǎo),告 訴測(cè)試指導(dǎo)出了什么錯(cuò)。要得到此塊中發(fā)生的詳細(xì)內(nèi)容,參見(jiàn)圖5。
A5-5:測(cè)試指導(dǎo)等待從參與的談判器收集狀態(tài)報(bào)告("通過(guò)"或"失敗")。 它整理該報(bào)告并以下述方式導(dǎo)出測(cè)試用例的最終結(jié)果。
一旦從任意談判器收到"失敗"報(bào)告后測(cè)試指導(dǎo)就得出結(jié)論整個(gè)測(cè) 試用例失敗。
當(dāng)所有參與的談判器提交了 "通過(guò)"報(bào)告給測(cè)試指導(dǎo)時(shí),整個(gè)的測(cè)試 例程才被認(rèn)為是"成功"的。
一旦導(dǎo)出了最終結(jié)果,測(cè)試指導(dǎo)將發(fā)布"停(CUT)"命令到所有參與 的談判以命令它們停止工作。談判器于是將停止執(zhí)行屏幕播放文件中給出 的指令,釋放不需要的存儲(chǔ)器,關(guān)閉所有不需要的連接,忽略再來(lái)的信息 包,直到下一測(cè)試用例開(kāi)始。
圖5更詳細(xì)地描述圖4中的塊A5-4中發(fā)生的具體內(nèi)容。此流程圖說(shuō)明 了每個(gè)談判器將以什么順序作出什么動(dòng)作。為了更好的易讀性,以下的文 字使用"談判器"代替"每個(gè)談判器"。
A5-4-l:談判器初始化其自變量i為O。
A5-4-2:談判器將變量增加l。
A5-4-3:談判器從屏幕播放文件取得第一個(gè)相關(guān)指令。相關(guān)指令是該 談判器必須執(zhí)行的指令。所有不相關(guān)指令將被談判器忽略掉。例如,談判 器B將忽略掉要由談判器A執(zhí)行的所有指令,而只執(zhí)行要由談判器B執(zhí)行 的那些指令。在一特定實(shí)施例中,指令的字段1指定應(yīng)執(zhí)行該指令的談判 器的名稱(chēng)。當(dāng)然,這種指定可以其它合適的方式實(shí)現(xiàn)以獲得滿(mǎn)意的結(jié)果。
A5-4-4:談判器將根據(jù)指令的動(dòng)作類(lèi)型采取不同的動(dòng)作。對(duì)于此特定
的實(shí)施方式,有兩種動(dòng)作類(lèi)型,即"發(fā)送(SEND)"和"接收(RECEIVE)"。
A5-4-5: SEND類(lèi)型的指令指定談判器應(yīng)使用哪個(gè)重寫(xiě)器(Rewriter) 來(lái)重寫(xiě)當(dāng)前指令的消息文件。在這步中,基于消息文件的內(nèi)容,談判器裝 入指定的重寫(xiě)器來(lái)產(chǎn)生要發(fā)送的消息。
典型地,重寫(xiě)器以實(shí)際值解析消息文件中預(yù)定義的標(biāo)簽。于是,重寫(xiě) 器可以被用戶(hù)定制化以便由用戶(hù)重寫(xiě)任何形式的消息文件。重寫(xiě)器如何工 作的更詳細(xì)信息,請(qǐng)見(jiàn)"SIP-指導(dǎo)器的核心重寫(xiě)器和校驗(yàn)器"部分。
A5-4-6:談判器發(fā)送重寫(xiě)消息之前,該指令還指定一個(gè)延遲周期。在 這步中,談判器等待延遲周期過(guò)去然后發(fā)送出重寫(xiě)消息到指定的目標(biāo)。指 定的目標(biāo)實(shí)際是SUT,但也可以為任何的網(wǎng)絡(luò)地址。
A5-4-7:談判器檢測(cè)是否在發(fā)送消息過(guò)程中發(fā)生任何錯(cuò)誤。
A5-4-8:談判器經(jīng)A2中建立的通信通道提交"失敗"報(bào)告給測(cè)試指導(dǎo), 告訴測(cè)試指導(dǎo)失敗原因。
A5-4-9: RECEIVE類(lèi)型的指令指定談判器將使用哪個(gè)校驗(yàn)器來(lái)確定談 判器接收到的消息是否正確。在這歩中,談判器將當(dāng)前指令涉及的消息文 件的內(nèi)容和屏幕播放文件中的當(dāng)前指令中指定的超時(shí)時(shí)間周期的值裝入指 定的校驗(yàn)器并初始化它。
A5-4-10:談判器等待直到校驗(yàn)器確定出談判器收到的消息是否正確。 對(duì)于給定的情形,不同的校驗(yàn)器做出不同的決定。典型地,校驗(yàn)器基于收 到的消息內(nèi)容和消息到達(dá)的時(shí)間做出決定。此外,校驗(yàn)器可以容易地被客 戶(hù)定制化以由客戶(hù)以完全不同的方式做出決定。校驗(yàn)器如何工作的更詳細(xì)
信息請(qǐng)見(jiàn)"SIP-指導(dǎo)器的核心重寫(xiě)器和校驗(yàn)器"部分。
A5-4-ll:談判器基于校驗(yàn)器給出的結(jié)論采取不同行動(dòng)。結(jié)論是肯定的
或否定的??隙ǖ慕Y(jié)論將導(dǎo)致談判器走到塊A5-4-12,而否定的結(jié)論將導(dǎo)致 談判器走到塊A5-4-8。
A5-4-12:談判器檢查當(dāng)前指令是否為屏幕播放文件中的最后一個(gè)相關(guān)
A5-4-13:談判器經(jīng)A2中建立的通信通道提交"通過(guò)"報(bào)告到測(cè)試指 導(dǎo),告訴測(cè)試指導(dǎo)從其觀點(diǎn)看完成了期望的任務(wù)。
特定實(shí)施例的文件的句法和語(yǔ)義 (A)測(cè)試指導(dǎo)的配置信息
解釋和語(yǔ)義
(a) 此文件僅包含一行。
(b) 該行由冒號(hào)隔開(kāi)的3個(gè)字段構(gòu)成。
(c) 第一個(gè)字段必須讀"測(cè)試指導(dǎo)(TestDirector)"。
(d) 第二個(gè)字段指定測(cè)試指導(dǎo)要在其上運(yùn)行的機(jī)器的IP地址。
(e) 第三個(gè)字段指定端口號(hào),測(cè)試指導(dǎo)在執(zhí)行測(cè)試用例前要在其上傾 聽(tīng)談判器注冊(cè)。
(B)談判器的配置信息
句法
這里〈property entry>為 〈property name>=<property value〉
解釋和語(yǔ)義
(a) 此文件定義關(guān)注的談判器的特性。
(b) 此文件由任意數(shù)量的特性項(xiàng)目(property entry)構(gòu)成。用戶(hù)可以 定義他們喜歡的任何特性。只有一個(gè)強(qiáng)制的特性用戶(hù)必須定義。
(c) 特性項(xiàng)由等號(hào)隔開(kāi)的兩個(gè)字段構(gòu)成,并以回車(chē)結(jié)束。第一字段稱(chēng) 作特性名稱(chēng),第二字段稱(chēng)作特性值。
(d) 特性名稱(chēng)由一個(gè)或多個(gè)字母數(shù)字字符構(gòu)成。
(e) 特性值由一個(gè)或多個(gè)非回車(chē)字符構(gòu)成。
(f) 強(qiáng)制特性的名為"role.location"且其值為一個(gè)由冒號(hào)隔開(kāi)的IP地 址和端口號(hào)。
(g) 談判器使用強(qiáng)制特性來(lái)確定網(wǎng)絡(luò)地址(即IP地址和端口號(hào)),在 其上它將傾聽(tīng)來(lái)自SUT和其他實(shí)休的進(jìn)入消息。
(C)屏幕播放文件 句法
這里 〈nstruction〉為
<fieldl>:<field2>:<field3>:<field4>:<filed5>:[<field6>;|
解釋和語(yǔ)義
(a) 此文件包含要由談判器執(zhí)行的指令。
(b) 簡(jiǎn)言之, 一個(gè)指令定義誰(shuí)將在何時(shí)發(fā)送什么消息或者誰(shuí)應(yīng)等到何 時(shí)接收什么消息。
(c) 此文件由一個(gè)或多個(gè)指令構(gòu)成。
(d) —個(gè)指令是由5或6個(gè)字段構(gòu)成的行。這些字段由冒號(hào)隔開(kāi)。此 行由CRLF或CR終止。
(e) 字段1指定將執(zhí)行該指令的談判器的名稱(chēng)。
(f) 字段2指定談判器要采取的動(dòng)作。可能的值為SEND或RECEIVE。
(g) "SEND"指示談判器發(fā)送一個(gè)消息。
(h) "RECEIVE"指示談判器等待一個(gè)進(jìn)入的消息。
(0字段3指定談判器要使用的重寫(xiě)器或校驗(yàn)器的名稱(chēng)。詳細(xì)內(nèi)容請(qǐng) 參見(jiàn)"SIP-測(cè)試指導(dǎo)的核心重寫(xiě)器和校驗(yàn)器"部分。
(j)如果指令的動(dòng)作類(lèi)型為"SEND",重寫(xiě)器的名稱(chēng)應(yīng)予指定。 (k)如果指令的動(dòng)作類(lèi)型為"RECEIVE",校驗(yàn)器的名稱(chēng)應(yīng)予指定。 (1)字段4是重寫(xiě)器或校驗(yàn)器要使用的消息文件的文件名。 (m)字段5指定毫秒為單位的時(shí)間周期。
(n)如果指令的動(dòng)作類(lèi)型為"SEND",時(shí)間周期將被理解為談判器的 延遲周期。
(o)如果指令的動(dòng)作類(lèi)型為"RECEIVE",時(shí)間周期將被理解為校驗(yàn) 器的超時(shí)值。
(p)字段6僅在指令的動(dòng)作類(lèi)型為RECEIVE時(shí)使用。它指定其值為 網(wǎng)絡(luò)地址的特性的名稱(chēng),談判器將發(fā)送消息到該地址。簡(jiǎn)言之,它指定目 的地。
(D)消息文件 消息文件是文本文件不需要句法。 解釋和語(yǔ)義
(a) 此文件包含一個(gè)消息模板或標(biāo)準(zhǔn)模板,重寫(xiě)器或校驗(yàn)器將處理其 以便發(fā)送或校驗(yàn)消息。
(b) 此文件將由重寫(xiě)器或校驗(yàn)器解釋。因此,用戶(hù)可能希望放到此文 件中的文本取決于使用什么重寫(xiě)器或校驗(yàn)器及用戶(hù)希望得到什么結(jié)果。
(c) 典型地,此文件包含帶有專(zhuān)有標(biāo)簽和標(biāo)記的類(lèi)似SIP消息的內(nèi)容, 以便被專(zhuān)有的重寫(xiě)器或校驗(yàn)器使用。
(d) 重寫(xiě)器和校驗(yàn)器如何使用消息文件的詳細(xì)內(nèi)容請(qǐng)見(jiàn)"SIP-指導(dǎo)器
的核心重寫(xiě)器和校驗(yàn)器"部分。 SIP-指導(dǎo)器的核心重寫(xiě)器和校驗(yàn)器
重寫(xiě)器和校驗(yàn)器為軟件模塊,它們輔助談判器執(zhí)行屏幕播放文件中的 指令。它們?cè)趯?shí)施本發(fā)明中起十分重要的作用,因此形成測(cè)試架構(gòu)的核心。
重寫(xiě)器是一個(gè)符合標(biāo)準(zhǔn)接口 (應(yīng)用編程接口或API)的軟件模塊,并負(fù) 責(zé)將一給定的消息文件轉(zhuǎn)換成另一形式。SIP-指導(dǎo)器允許測(cè)試工具的用戶(hù)提 供自己的重寫(xiě)器,由此給用戶(hù)自由以任何可以想象的方式設(shè)計(jì)和轉(zhuǎn)換消息 文件。為了便于說(shuō)明,下面將在這部分討論一組樣本重寫(xiě)器。
類(lèi)似地,校驗(yàn)器是一個(gè)符合標(biāo)準(zhǔn)接口 (應(yīng)用編程接口或API)的軟件模 塊,并在一個(gè)超時(shí)限制內(nèi)負(fù)責(zé)確定由談判器接收到的一個(gè)或多個(gè)消息的正 確與否。SIP-指導(dǎo)器允許測(cè)試工具的用戶(hù)提供自己的校驗(yàn)器,由此給用戶(hù)自 由去定義他們自己的方式來(lái)確定接收的消息正確與否。為了便于說(shuō)明,下 面將在這部分討論一組樣本校驗(yàn)器。
關(guān)于上述的公開(kāi)內(nèi)容,很顯然本發(fā)明的測(cè)試架構(gòu)的應(yīng)用不限于SIP協(xié) 議。本領(lǐng)域的普通技術(shù)人員可以根據(jù)上述SIP測(cè)試架構(gòu)的實(shí)施例容易地將 本發(fā)明用于測(cè)試其它通信協(xié)議。
羞寫(xiě)器
如前所述,談判器在其發(fā)送出重寫(xiě)的消息之前,依賴(lài)重寫(xiě)器來(lái)重寫(xiě)消
息文件。因此,當(dāng)談判器正在執(zhí)行其動(dòng)作類(lèi)型為SEND的指令時(shí),談判器
將使用重寫(xiě)器。
SIP測(cè)試架構(gòu)的用戶(hù)可以選擇設(shè)計(jì)和使用他們自己的重寫(xiě)器。為了說(shuō)明 的目的,兩個(gè)樣本重寫(xiě)器將在下面討論(a) NO叩重寫(xiě)器;(b)標(biāo)準(zhǔn)重寫(xiě) 器°
No叩重寫(xiě)器不在消息文件上執(zhí)行任何操作。換句話(huà)說(shuō),它不改變消息 文件。其結(jié)果是,用戶(hù)放到消息文件中的任何內(nèi)容都將在延遲周期過(guò)去之 后被談判器原樣發(fā)送出去。
標(biāo)準(zhǔn)重寫(xiě)器通過(guò)以實(shí)際值替代預(yù)定標(biāo)簽來(lái)重寫(xiě)消息文件。標(biāo)簽是符合
預(yù)定模式的一段文本。由標(biāo)準(zhǔn)重寫(xiě)器識(shí)別的所有標(biāo)簽具有下列模式
其中,方括號(hào)標(biāo)記標(biāo)簽的界限,X是標(biāo)簽的類(lèi)別(有4類(lèi),即P, H, C和D), 是分隔符,Desc告訴標(biāo)準(zhǔn)重寫(xiě)器它應(yīng)該怎樣替換標(biāo)簽。 標(biāo)準(zhǔn)重寫(xiě)器將重寫(xiě)的標(biāo)簽的4個(gè)類(lèi)別為
(a) 特性標(biāo)簽;
(b) 常量標(biāo)簽; (C)動(dòng)態(tài)標(biāo)簽;
(d)歷史標(biāo)簽。
特性標(biāo)簽
簡(jiǎn)言之,特性標(biāo)簽要由標(biāo)準(zhǔn)重寫(xiě)器解析為特性值,特制標(biāo)簽采用以下 形式
解釋
(a) P代表特性標(biāo)簽;(b) property一name是特性名稱(chēng),此標(biāo)簽將被解析為特性值;
(c) negotiator—name是談判器的名稱(chēng),其配置信息將被使用于査找特性值。 此字段是可選的,當(dāng)省略時(shí),標(biāo)準(zhǔn)重寫(xiě)器將使用正執(zhí)行屏幕播放文件中的 當(dāng)前指令的談判器的配置信息,來(lái)重寫(xiě)消息文件以査找特性值。
(a ) /P swty'ecf. /ocaf/o"/ 上述的特性標(biāo)簽告訴標(biāo)準(zhǔn)重寫(xiě)器以正執(zhí)行當(dāng)前指令的談判器的配置信息中 找到的特性"subject.location"的值替換該標(biāo)簽。
(b ) /P ~r。/e.鵬'.cfo附a/" B7 上述特性標(biāo)簽告訴標(biāo)準(zhǔn)重寫(xiě)器以談判器B的配置信息中找到的特性
"role.uri.domain"的值替換該標(biāo)簽。
常量標(biāo)簽
簡(jiǎn)言之,常量標(biāo)簽要被解析為共同的常數(shù)值給所有參與的談判器。在 執(zhí)行每個(gè)測(cè)試用例之前新的常數(shù)值賦給所有的談判器。常量標(biāo)簽采用以下 形式
(a) C代表常量標(biāo)簽;
(b) predefmedJoken為常量名稱(chēng),此常量標(biāo)簽將可能解析為下列可能的值:
(1) Call-ID:解析為可能包括字母、標(biāo)點(diǎn)符號(hào)和數(shù)字的字符串;
(2) BranchCookie:解析為如RFC3261中指定的magic cookie起始的
字符串;
(3) Alphanumeric:解析為包含字母數(shù)字字符的字符串;
(4) Numeric:解析為僅僅包含數(shù)字的字符串。
(c) suffix是一段文本,將附屬到解析值之后。該字段是可選的。省略時(shí), 不附屬額外的文本。
(a) /C C/D/
上述常量標(biāo)簽告訴標(biāo)準(zhǔn)重寫(xiě)器(StandardRewriter)用可以包括字母、標(biāo)點(diǎn) 符號(hào)和數(shù)字的字符串替換該標(biāo)簽。
上述常量標(biāo)簽告訴標(biāo)準(zhǔn)重寫(xiě)器用如RFC3261中指定的magic cookie起始的 字符串替換該標(biāo)簽。
(c) [C Brawc/2G50Aie "6c] 上述常量標(biāo)簽將被解析為與前一個(gè)相同的值,并有額外文本"abc"附屬到 末尾。
動(dòng)態(tài)標(biāo)簽
動(dòng)態(tài)標(biāo)簽將被解析為一個(gè)取決于消息文件的內(nèi)容的值。動(dòng)態(tài)標(biāo)簽采用下列 形式
(a) D代表動(dòng)態(tài)標(biāo)簽;
(b) predefined-token告訴標(biāo)準(zhǔn)重寫(xiě)器它應(yīng)如何計(jì)算該值。對(duì)于此示例,僅 有一個(gè)可能值(可以根據(jù)需要定義更多的token): content-length。它被解析 為一個(gè)數(shù)值,反映消息文件中找到的SIP消息體的字節(jié)數(shù)。
示例
上述的常量標(biāo)簽告訴標(biāo)準(zhǔn)重寫(xiě)器以反映消息文件中找到的SIP消息體的字 節(jié)數(shù)的數(shù)值替換該標(biāo)簽。
歷史標(biāo)簽
歷史標(biāo)簽被解析為從先前由談判器發(fā)送或由談判器接收到的SIP消息里抽 取的SIP消息頭。歷史標(biāo)簽采用下列形式
說(shuō)明
(a) H代表歷史標(biāo)簽;
(b) header—name指定要被抽取的SIP消息頭的名稱(chēng);對(duì)于SIP消息頭名 稱(chēng)的完整列表,參閱RFC 3261.
(c) scope告訴要被抽取的SIP消息頭有多少行??赡艿闹凳?br> (1) First:當(dāng)需要的SIP消息頭的多行出現(xiàn)時(shí),僅抽取第一行。
(2) All:抽取需要的SIP消息頭的所有行。
(d) index告訴標(biāo)準(zhǔn)重寫(xiě)器哪個(gè)先前發(fā)送或先前接收的消息應(yīng)該用于抽取 SIP消息頭。"歷史" 一詞是指由談判器發(fā)出的所有的SIP消息,或者在執(zhí) 行當(dāng)前指令之前談判器接收的所有的SIP消息。此字段選擇標(biāo)準(zhǔn)重寫(xiě)器應(yīng) 該使用哪個(gè)消息??赡艿闹禐?br> (1) r-<n>: r代表接收的SIP消息;n是歷史索引。例如,r-l指談判 器接收的最后的SIP消息;r-2指談判器接收的倒數(shù)第二的SIP消息。
(2) s-<n>: s代表發(fā)送的SIP消息;n是歷史索引。例如,s-l指談判 器發(fā)出的最后的SIP消息;s-2指談判器發(fā)出的倒數(shù)第二的SIP消息。
示例
上述歷史標(biāo)簽告訴標(biāo)準(zhǔn)重寫(xiě)器用談判器收到的最后的SIP消息中找到 的"Contact"消息頭的第一行來(lái)替換該標(biāo)簽。
(b) /7/ 7 6^<92^/-^她 v4t7 ^t-2/ 上述歷史標(biāo)簽告訴標(biāo)準(zhǔn)重寫(xiě)器用談判器收到的倒數(shù)第二的SIP消息中
找到的"Record-Route"消息頭的所有行來(lái)替換該標(biāo)簽。
(c) /"http://—Kz's—FzV^i-^y 上述歷史標(biāo)簽告訴標(biāo)準(zhǔn)重寫(xiě)器用談判器發(fā)出的倒數(shù)第二的SIP消息中
找到的"Via"消息頭的第一行來(lái)替換該標(biāo)簽。
特性標(biāo)簽、常量標(biāo)簽和動(dòng)態(tài)標(biāo)簽使得SIP-指導(dǎo)基于運(yùn)行時(shí)間參數(shù)來(lái)構(gòu) 造文本消息(不是必須為SIP消息)。因此本質(zhì)上是動(dòng)態(tài)地構(gòu)造消息。
歷史標(biāo)簽使得測(cè)試工具的用戶(hù)能夠構(gòu)造消息模板,該模板內(nèi)容取決于 先前發(fā)送/先前接收的消息,由此使此測(cè)試架構(gòu)具有構(gòu)造適于運(yùn)行時(shí)間場(chǎng)景
的SIP信息的能力。換言之,SIP-指導(dǎo)中SIP消息的構(gòu)造本質(zhì)上也是適應(yīng)性的。
校驗(yàn)器
如上所述,談判器依賴(lài)校驗(yàn)器來(lái)確定由談判器收到的消息正確與否。 因此,當(dāng)談判器在執(zhí)行其動(dòng)作類(lèi)型為"接收"的命令時(shí),談判器將使用一 個(gè)校驗(yàn)器。
校驗(yàn)器以下述方式工作它初始化(1)當(dāng)前指令中引用的消息文件和 (2)當(dāng)前指令中指定的超時(shí)周期的值。如果需要,校驗(yàn)器可以在當(dāng)前指令 開(kāi)始執(zhí)行時(shí)以該超時(shí)值開(kāi)啟一個(gè)計(jì)時(shí)器。每次談判器收到一個(gè)消息,該消 息被傳送到校驗(yàn)器以便它決定收到的消息是否正確。作為響應(yīng),該校驗(yàn)器 可以(1)發(fā)布一個(gè)正的決定結(jié)果來(lái)表明消息是正確的,或者(2)發(fā)布一 個(gè)負(fù)的決定結(jié)果來(lái)表明消息不正確或者不合適,或者(3)靜靜等待下一消 息到來(lái),或者等待超時(shí)周期過(guò)去并其后發(fā)布一個(gè)決定結(jié)果。在此時(shí),校驗(yàn) 器一定要發(fā)布一個(gè)決定結(jié)果。
SIP-指導(dǎo)的用戶(hù)可以選擇設(shè)計(jì)和使用自己的校驗(yàn)器。下面的校驗(yàn)器的特 定實(shí)施例僅用作范例,不用于限定。
當(dāng)"標(biāo)準(zhǔn)"系列的校驗(yàn)器由消息文件初始化時(shí),校驗(yàn)器將使用標(biāo)準(zhǔn)重 寫(xiě)器來(lái)重寫(xiě)該文件的內(nèi)容。重寫(xiě)的內(nèi)容將變成校驗(yàn)器使用的一組規(guī)則來(lái)校 驗(yàn)談判器收到的消息的有效性。 一旦談判器收到消息,該消息將被傳送到 校驗(yàn)器,后者將執(zhí)行校驗(yàn)。校驗(yàn)結(jié)果和消息的到達(dá)時(shí)間二者對(duì)校驗(yàn)器的最
終決定結(jié)果有作用。
下面說(shuō)明校驗(yàn)器的一個(gè)特定實(shí)施例。 "盲(Blind)"系列
(a) 盲校驗(yàn)器(BlindChecker) —旦談判器收到一個(gè)消息它將發(fā)布 一個(gè)正的決定結(jié)果。決定結(jié)果與消息的內(nèi)容無(wú)關(guān)。它僅在時(shí)間超時(shí)時(shí)發(fā)布 負(fù)的決定結(jié)果。
(b) 自閉型盲校驗(yàn)器(AutisticBlindChecker) 該校驗(yàn)器內(nèi)向,不愿 意被打擾。因此一旦談判器收到一個(gè)消息它將發(fā)布一個(gè)負(fù)的決定結(jié)果。決 定結(jié)果與消息內(nèi)容無(wú)關(guān)。僅當(dāng)超時(shí)時(shí),發(fā)布正的決定結(jié)果。
"標(biāo)準(zhǔn)"系列
(a) 標(biāo)準(zhǔn)校驗(yàn)器(StandardChecker) —旦談判器收到第一消息,該 標(biāo)準(zhǔn)校驗(yàn)器將根據(jù)消息文件中給定的規(guī)則校驗(yàn)其有效性。如果滿(mǎn)足所有規(guī) 則,該校驗(yàn)器將發(fā)布正的決定結(jié)果,否則將發(fā)布負(fù)的決定結(jié)果。當(dāng)超時(shí)時(shí) 也將發(fā)布負(fù)的決定結(jié)果。
(b) 耐心標(biāo)準(zhǔn)校驗(yàn)器(PatientStandardChecker) 它很類(lèi)似于"標(biāo)準(zhǔn)校 驗(yàn)器",但是它不會(huì)輕易放棄等待期望的消息。 一旦接收的消息滿(mǎn)足所有規(guī) 則,該校驗(yàn)器將發(fā)布一個(gè)正的決定結(jié)果。僅當(dāng)超時(shí)時(shí)發(fā)布負(fù)的決定結(jié)果。
(c) 自閉型標(biāo)準(zhǔn)校驗(yàn)器(AutisticStandardChecker) 它是"過(guò)分"內(nèi) 向的。 一旦談判器收到滿(mǎn)足所有規(guī)則的消息,它將發(fā)布一個(gè)負(fù)的決定結(jié)果。 當(dāng)超時(shí)或者談判器收到的消息不滿(mǎn)足所有規(guī)則時(shí)它發(fā)布正的決定結(jié)果。
(d)自閉型耐心標(biāo)準(zhǔn)校驗(yàn)器(AutisticPatientStandardChecker) 它很
類(lèi)似于自閉型標(biāo)準(zhǔn)校驗(yàn)器。區(qū)別僅在于它更有耐心。當(dāng)超時(shí)時(shí)它發(fā)布正的 決定結(jié)果。它將忽略不滿(mǎn)足所有規(guī)則的接收的消息并耐心等待。當(dāng)滿(mǎn)足所 有規(guī)則的消息到達(dá)時(shí)它發(fā)布一個(gè)負(fù)的決定結(jié)果。
"標(biāo)準(zhǔn)"系列中的校驗(yàn)器都是基于標(biāo)準(zhǔn)校驗(yàn)器(StandardChecker)。"標(biāo) 準(zhǔn)"系列中的所有的校驗(yàn)器,在確定接收的消息是否正確方面,都與標(biāo)準(zhǔn) 校驗(yàn)器以相同方式工作。因此討論將集中在標(biāo)準(zhǔn)校驗(yàn)器如何確定收到的消 息的正確與否。
根據(jù)RFC3261 (RPC代表請(qǐng)求注解。要看詳細(xì)內(nèi)容請(qǐng)登陸 http:〃www.faqs.org/rfcs/rfc3261 .html) , SIP消息以請(qǐng)求行或響應(yīng)行開(kāi)始,后 面跟隨一些SIP消息頭,還可能跟隨消息體。消息體是可選的。
當(dāng)校驗(yàn)實(shí)際接收的消息的正確與否時(shí)(或有效性),將考慮消息中的下
列信息
(a) 請(qǐng)求行是否使用了期望的請(qǐng)求方法;
(b) 響應(yīng)行是否使用了期望的響應(yīng)碼;
(C)消息是否包含特定消息頭名稱(chēng)的某些消息頭,其消息頭的值不重
要;
(d) 消息是否包含特定消息頭名稱(chēng)的某些消息頭,其消息頭的值重要;
(e) 其它可能包含特定情況的問(wèn)題。
因此,當(dāng)標(biāo)準(zhǔn)校驗(yàn)器校驗(yàn)實(shí)際接收的消息的有效性時(shí),它應(yīng)該查看相
同的信息。是消息文件告訴標(biāo)準(zhǔn)校驗(yàn)器應(yīng)該確切地査看接收的SIP消息中
的什么信息。換言之,消息文件形成標(biāo)準(zhǔn)校驗(yàn)器使用的規(guī)則來(lái)校驗(yàn)接收的 消息。
因此,消息文件必須向標(biāo)準(zhǔn)校驗(yàn)器表明在接收的消息中期望什么請(qǐng)求 方法,在接收的消息中期望什么響應(yīng)碼,必須有什么消息頭及必須不出現(xiàn) 什么消息頭等等。消息文件的格式應(yīng)當(dāng)使這些規(guī)則可以由用戶(hù)容易地表達(dá) 且由標(biāo)準(zhǔn)校驗(yàn)器容易地解釋。很自然地,規(guī)則的表達(dá)方式將極其類(lèi)似常規(guī) 的SIP消息。
當(dāng)標(biāo)準(zhǔn)校驗(yàn)器初始化時(shí),它將使用標(biāo)準(zhǔn)重寫(xiě)器來(lái)將所有預(yù)定標(biāo)簽解析 為實(shí)際值(如上所述)。重寫(xiě)過(guò)程之后,消息文件的內(nèi)容看起來(lái)將非常象SIP 消息,特殊的前綴在某些SIP消息頭之前出現(xiàn)。
消息文件重寫(xiě)的內(nèi)容將由標(biāo)準(zhǔn)校驗(yàn)器以下列方式解釋
(a) 第一行告訴標(biāo)準(zhǔn)校驗(yàn)器接收的消息中期望什么請(qǐng)求方法或響應(yīng)
碼;
(b) 其余行告訴標(biāo)準(zhǔn)校驗(yàn)器什么SIP消息頭必須出現(xiàn)或什么SIP消息 頭必須不出現(xiàn)。如RFC3261中定義的, 一行定義為以回車(chē)換行(CrLf)結(jié) 束的一段文本。預(yù)定的標(biāo)志用于表明期望什么和不期望什么。標(biāo)志將在下 面予以討論。
標(biāo)準(zhǔn)系列中由校驗(yàn)器識(shí)別的標(biāo)志
消息模板中的每一行代表接收的消息必須滿(mǎn)足的一個(gè)獨(dú)立的規(guī)則。除 了第一行,所有其它行可以加前綴"標(biāo)志"來(lái)表明期望的特性。下面詳細(xì) 說(shuō)明每一個(gè)標(biāo)志
(a) EHV
此標(biāo)志代表期望的頭值。當(dāng)沒(méi)有指定標(biāo)志時(shí)它是缺省標(biāo)志。它告訴校 驗(yàn)器跟隨此標(biāo)志的SIP消息頭(頭名稱(chēng)和頭值)必須存在于接收到的消息 中,以便滿(mǎn)足規(guī)則。
示例
EHV Max-Forwards: 70
上行代表的規(guī)則為帶有值70的"Max-Forwards"消息頭必須存在于 接收到的消息中。
(b) EHN
此標(biāo)志代表期望的頭名稱(chēng)。它告訴校驗(yàn)器帶有與跟隨此標(biāo)志的相同名 稱(chēng)的SIP消息頭必須存在于接收到的消息中以便滿(mǎn)足規(guī)則。
示例
E麗 Call-ID: *
上行代表的規(guī)則為至少一個(gè)"Call-ID"消息頭必須存在于接收到的 消息中。消息頭的值不重要。
(c) UHV
此標(biāo)志代表不受歡迎的頭值。它告訴校驗(yàn)器跟隨此標(biāo)志的SIP消息頭 (頭名稱(chēng)和頭值)一定不能出現(xiàn)在接收到的消息中以便滿(mǎn)足規(guī)則。
示例
UHV CSeq: 1 INVITE
上行代表的規(guī)則為帶有值"1INVITE"的"CSeq"消息頭一定不能
出現(xiàn)在接收到的消息中。
(d) UHN
此標(biāo)志代表不受歡迎的頭名稱(chēng)。它告訴校驗(yàn)器帶有與跟隨此標(biāo)志的相 同名稱(chēng)的SIP消息頭一定不能存在于接收到的消息中以滿(mǎn)足規(guī)則。
示例
UHN Contact: *
上行代表的規(guī)則為不允許"Contact"頭存在于接收到的消息中,不 管頭值是多少。
當(dāng)前實(shí)施例中提供的各種校驗(yàn)器使得測(cè)試架構(gòu)工作的用戶(hù)可以構(gòu)思合 適的先進(jìn)的測(cè)試用例來(lái)測(cè)試他們的SUT。用戶(hù)甚至可以設(shè)計(jì)他們自己的校 驗(yàn)器來(lái)校驗(yàn)收到的消息的正確與否,由此使得此測(cè)試方法延伸測(cè)試其它通 信協(xié)議。
在校驗(yàn)SIP消息頭的有效性,不同類(lèi)型的標(biāo)志覆蓋了大多數(shù)(若不是 全部的話(huà))能想象到的情況。能表達(dá)復(fù)雜的規(guī)則,而不需要用戶(hù)書(shū)寫(xiě)復(fù)雜 的腳本命令,是本發(fā)明的顯著特征。
測(cè)試用例的結(jié)構(gòu)和文檔的自動(dòng)生成
層級(jí)測(cè)試用例構(gòu)造
一個(gè)測(cè)試用例是應(yīng)當(dāng)在談判器和受測(cè)試系統(tǒng)之間發(fā)生的消息流的規(guī)范 (specification),以屏幕播放文件和相關(guān)的消息文件的形式表示。根據(jù)本發(fā) 明的一個(gè)特定實(shí)施例,測(cè)試用例以層級(jí)方式邏輯地構(gòu)造,由此一個(gè)測(cè)試用 例可以是測(cè)試組的一部分,測(cè)試組又可以是更大的組的一個(gè)部分,等等。
該特定實(shí)施例可以構(gòu)造的測(cè)試用例的分組等級(jí)數(shù)沒(méi)有限制。圖6顯示了測(cè) 試用例的這種層級(jí)的例子。
測(cè)試用例的分組可以基于用戶(hù)認(rèn)為合適的任何規(guī)則。例如,測(cè)試用例 分組可以基于它們的相似性、消息流的共性、測(cè)試用例所體現(xiàn)的行為所屬 的RFC的邏輯部分等等。
作為一個(gè)特定實(shí)施例,屏幕播放文件和相關(guān)消息文件(例如文件系統(tǒng)) 的物理構(gòu)造可以具有與相關(guān)測(cè)試用例的邏輯構(gòu)造相同的層級(jí)結(jié)構(gòu)。這使得 易于文件的維護(hù)。
可以單獨(dú)執(zhí)行測(cè)試,或者利用腳本命令或者其它合適機(jī)制自動(dòng)成批地 執(zhí)行。但是用戶(hù)執(zhí)行測(cè)試的更強(qiáng)大和有邏輯性的方式是基于上述的測(cè)試用 例層級(jí)構(gòu)造。于是,他或她可以通過(guò)指定標(biāo)明測(cè)試用例的層級(jí)結(jié)構(gòu)中的一 個(gè)特定組的標(biāo)識(shí)符來(lái)請(qǐng)求執(zhí)行一組測(cè)試。這是更強(qiáng)大的,因?yàn)橛脩?hù)可以容 易地通過(guò)簡(jiǎn)單地指定標(biāo)識(shí)符來(lái)請(qǐng)求執(zhí)行任意大組的測(cè)試。這也更具邏輯性, 因?yàn)樗沟脺y(cè)試用例的構(gòu)造與執(zhí)行密切對(duì)應(yīng)。 自動(dòng)的文件生成
在生成一個(gè)測(cè)試用例時(shí),提供關(guān)于測(cè)試用例的相關(guān)文件與指定消息流
是同等重要的。這樣的文件可以包括測(cè)試內(nèi)容的描述、與測(cè)試相關(guān)的RFC
中的有關(guān)部法、消息流的關(guān)鍵特性或測(cè)試的概念、消息流的圖解表示,等 等。文件是計(jì)劃和管理測(cè)試過(guò)程的工具,當(dāng)測(cè)試用例的數(shù)量變得很大時(shí)可 能是至關(guān)重要的。
測(cè)試用例的規(guī)范要求書(shū)寫(xiě)文檔源文件。文檔源文件具有定義明確的格 式和關(guān)于該測(cè)試用例的信息關(guān)鍵段的占位符,例如測(cè)試名稱(chēng)、測(cè)試說(shuō)明、 測(cè)試前提、參考信息如RFC參考資料、消息流等待。測(cè)試用例文檔源文件可以具有與實(shí)際測(cè)試用例相同的層次結(jié)構(gòu)。它們 貯存在與屏幕播放文件和消息文件的層次(例如文件系統(tǒng))相同的物理位 置。這使得文檔源文件和屏幕播放文件及消息文件一樣易于維護(hù)。在特定實(shí)施例中,有一個(gè)程序工具從文檔源文件產(chǎn)生HTML格式的文 檔。這樣的程序工具可以由本領(lǐng)域的普通技術(shù)人員實(shí)現(xiàn)。產(chǎn)生的HTML文 檔包括完全的超鏈接,使得易于在測(cè)試用例中導(dǎo)航。每當(dāng)需要產(chǎn)生文檔時(shí) 測(cè)試架構(gòu)的用戶(hù)可以發(fā)布簡(jiǎn)單的命令,可以自動(dòng)產(chǎn)生測(cè)試用例的整個(gè)層次 的文檔。此外,測(cè)試用例文檔源文件包含標(biāo)簽,該標(biāo)簽待由從屏幕播放文件或 消息文件中抽取的某些段信息替換,諸如消息流。提供這樣的標(biāo)簽消除了 屏幕播放文件和消息文件中找到的信息的反復(fù)輸入。雖然已經(jīng)說(shuō)明和指出本發(fā)明應(yīng)用于優(yōu)選實(shí)施例的基本特征,將可理解, 在不脫離本發(fā)明精神的情況下本領(lǐng)域的技術(shù)人員可以在說(shuō)明的測(cè)試架構(gòu)和 方法的形式和細(xì)節(jié)上進(jìn)行各種的省略、替換和改變。例如,清楚地要將架 構(gòu)的那些部件的所有組合和/或以實(shí)質(zhì)上相同的方式執(zhí)行實(shí)質(zhì)上系統(tǒng)功能以 獲得相同結(jié)果的方法步驟包含在本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明不限定于上述的僅作為示例的實(shí)施例,這些示例可以在后附的 權(quán)利要求的保護(hù)范圍內(nèi)作出各種修改。在理解所附的權(quán)利要求時(shí),如果與說(shuō)明書(shū)中其它部分的說(shuō)明不一致,
下面給出的定義將具有優(yōu)先性。"測(cè)試計(jì)算機(jī)"是可以執(zhí)行軟件程序和具有網(wǎng)絡(luò)接口的任何計(jì)算設(shè)備。 典型的這種設(shè)備包括(還有其它部件)中央計(jì)算單元(CPU)、隨機(jī)存取 存儲(chǔ)器(RAM)、操作系統(tǒng)(OS)和網(wǎng)卡。"測(cè)試指導(dǎo)"是僅僅用于測(cè)試或診斷目的的可以與其它測(cè)試或診斷計(jì) 算機(jī)軟件程序交互的任何計(jì)算機(jī)軟件程序,這些測(cè)試或診斷計(jì)算機(jī)軟件程 序運(yùn)行在同一測(cè)試計(jì)算機(jī)上或一個(gè)或多個(gè)不同的測(cè)試計(jì)算機(jī)上。"SUT"是指受測(cè)試的系統(tǒng)。"談判器"是僅用于測(cè)試或診斷目的的任何計(jì)算機(jī)軟件程序,可以與 其它的測(cè)試或診斷計(jì)算機(jī)軟件程序交互,這些測(cè)試或診斷計(jì)算機(jī)軟件程序 運(yùn)行在同一測(cè)試計(jì)算機(jī)上或一個(gè)或多個(gè)不同的測(cè)試計(jì)算機(jī)上,并且通過(guò)與 網(wǎng)絡(luò)的連接可以與網(wǎng)絡(luò)內(nèi)的設(shè)備通信。"校驗(yàn)器"是用于通過(guò)比較網(wǎng)絡(luò)通信中實(shí)際接收到的消息的內(nèi)容和期 望的內(nèi)容來(lái)確定是否發(fā)生錯(cuò)誤的軟件單元。"重寫(xiě)器"是用于根據(jù)一組預(yù)定規(guī)則將計(jì)算機(jī)可讀文件即數(shù)字?jǐn)?shù)據(jù)流 轉(zhuǎn)換成消息的軟件單元,以便所得到的消息的格式符合網(wǎng)絡(luò)通信協(xié)議。"測(cè)試用例"、"屏幕播放文件"和"消息文件"是計(jì)算機(jī)可讀文件或 數(shù)字?jǐn)?shù)據(jù)流,它們的內(nèi)容可以通過(guò)計(jì)算機(jī)在計(jì)算機(jī)屏幕上或硬拷貝打印上為人類(lèi)可讀。 一個(gè)測(cè)試用例是SUT和多個(gè)談判器之一之間的測(cè)試消息的確 定性流。屏幕播放文件指定該消息流,很象拍攝電影時(shí)使用的劇本。"靜態(tài)和運(yùn)行時(shí)間信息"是指關(guān)于測(cè)試用例和執(zhí)行測(cè)試后獲得的測(cè) 結(jié)果的信息,例如可包括測(cè)試名稱(chēng)、測(cè)試說(shuō)明、測(cè)試前提、RFC參考信息、 消息流、任何通信錯(cuò)誤的指示和原因,或者用戶(hù)認(rèn)為有用和適用于文檔的 任何其他信息。當(dāng)然,可以省略上述特定信息的一個(gè)或多個(gè)部分。
權(quán)利要求
1、一種測(cè)試連接到IP網(wǎng)絡(luò)的實(shí)體的通信信號(hào)協(xié)議的相容性或強(qiáng)健性的系統(tǒng),該系統(tǒng)包括(a)一個(gè)或多個(gè)測(cè)試計(jì)算機(jī);(b)一個(gè)或多個(gè)談判器;及(c)一個(gè)測(cè)試指導(dǎo),其中所述的一個(gè)或多個(gè)談判器和所述的測(cè)試指導(dǎo)是軟件程序并安裝在所述的一個(gè)或多個(gè)測(cè)試計(jì)算機(jī)中;所述的一個(gè)或多個(gè)談判器與所述的IP網(wǎng)絡(luò)具有連接,由此利用所述的通信協(xié)議與所述的實(shí)體通信;所述的測(cè)試指導(dǎo)與所述的一個(gè)或多個(gè)談判器具有連接,由此發(fā)送命令到所述的一個(gè)或多個(gè)談判器以執(zhí)行一項(xiàng)工作,所述工作為以符合所述通信協(xié)議的格式發(fā)送一個(gè)消息到所述實(shí)體,或者等待從所述實(shí)體接收滿(mǎn)足所述通信協(xié)議的格式的另一消息。
2、 根據(jù)權(quán)利要求l的系統(tǒng),還包括一個(gè)或多個(gè)存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的 并可以由所述的測(cè)試指導(dǎo)訪問(wèn)的文件。
3、 根據(jù)權(quán)利要求2的系統(tǒng),其中所述的一個(gè)或多個(gè)文件也可由所述的一個(gè) 或多個(gè)談判器訪問(wèn)。
4、 根據(jù)權(quán)利要求3的系統(tǒng),其中所述的一個(gè)或多個(gè)文件包括一個(gè)測(cè)試用例, 具有ID、屏幕播放文件和一個(gè)或多個(gè)消息文件,所述的屏幕播放文件包括 至少一個(gè)指令并在所述測(cè)試用例中引用;其中由所述測(cè)試指導(dǎo)發(fā)送到所述 一個(gè)或多個(gè)談判器的所述命令包括所述測(cè)試用例的ID,所述工作由所述測(cè) 試用例中引用的屏幕播放文件中的指令指定。
5、 根據(jù)權(quán)利要求2的系統(tǒng),其中所述談判器包括第一部分,其用作校檢器,所述校驗(yàn)器能夠比較執(zhí)行所述工作中接收到的另一消息的內(nèi)容和一項(xiàng)所述 文件的內(nèi)容,以確定是否發(fā)生了通信誤差。
6、 根據(jù)權(quán)利要求5的系統(tǒng),其中所述談判器基于所述校驗(yàn)器進(jìn)行的確定發(fā) 送一個(gè)報(bào)告到所述測(cè)試指導(dǎo),所述報(bào)告可選地由所述測(cè)試指導(dǎo)顯示在屏幕 上或打印出來(lái)。
7、 根據(jù)權(quán)利要求5的系統(tǒng),其中所述談判器還包括第二部分,其用作重寫(xiě) 器,所述重新器能夠?qū)⒁豁?xiàng)所述文件的內(nèi)容轉(zhuǎn)換成執(zhí)行所述工作中要使用 的所述消息。
8、 根據(jù)權(quán)利要求1的系統(tǒng),其中所述測(cè)試指導(dǎo)安裝在測(cè)試計(jì)算機(jī)上,其中 沒(méi)有安裝所述談判器。
9、 根據(jù)權(quán)利要求1的系統(tǒng),其中所述測(cè)試指導(dǎo)安裝在測(cè)試計(jì)算機(jī)上,其中 - -個(gè)或多個(gè)所述談判器也安裝在其上。
10、 根據(jù)權(quán)利要求1的系統(tǒng),其中每個(gè)所述的測(cè)試指導(dǎo)和一個(gè)或多個(gè)談判 器安裝在分開(kāi)的測(cè)試計(jì)算機(jī)上。
11、 根據(jù)權(quán)利要求2的系統(tǒng),其中所述一個(gè)或多個(gè)文件存儲(chǔ)在測(cè)試計(jì)算機(jī) 內(nèi)的計(jì)算機(jī)可讀介質(zhì)中,其中所述測(cè)試指導(dǎo)或談判器之一安裝在該測(cè)試計(jì) 算機(jī)中,或者所述一個(gè)或多個(gè)文件存儲(chǔ)在一個(gè)設(shè)備或測(cè)試計(jì)算機(jī)的計(jì)算機(jī) 可讀介質(zhì)中,在該設(shè)備或測(cè)試計(jì)算機(jī)中沒(méi)有安裝所述的測(cè)試指導(dǎo)或一個(gè)或 多個(gè)談判器。
12、 一種測(cè)試連接到基于IP的網(wǎng)絡(luò)的實(shí)體的通信信號(hào)協(xié)議的相容性和強(qiáng)健性的方法,該方法包括步驟(a) 根據(jù)預(yù)定規(guī)則,準(zhǔn)備一個(gè)測(cè)試用例、 一個(gè)屏幕播放文件和一組消息文 件;(b) 將所述測(cè)試用例作為輸入來(lái)執(zhí)行一個(gè)測(cè)試指導(dǎo);(C)執(zhí)行一個(gè)或多個(gè)談判器,該談判器與所述測(cè)試指導(dǎo)進(jìn)行通信;(d) 由所述測(cè)試指導(dǎo)發(fā)送一個(gè)命令到所述談判器;(e) 基于從所述測(cè)試指導(dǎo)接收的命令由所述談判器發(fā)送一個(gè)消息,所述消 息發(fā)送到網(wǎng)絡(luò)中的所述受測(cè)試實(shí)體,所述談判器連接于其網(wǎng)絡(luò)上;(f) 等待要被發(fā)送到所述談判器的另一消息直到經(jīng)過(guò)了指定的超時(shí)時(shí)間, 如果在指定的超時(shí)時(shí)間內(nèi)所述另一消息到達(dá),該消息經(jīng)受所述談判器的檢 查,以確定是否發(fā)生了通信誤差;及(g) 基于所述檢査由所述談判器發(fā)送一個(gè)報(bào)告到所述測(cè)試指導(dǎo)。
13、 根據(jù)權(quán)利要求12的方法,其中還包括步驟(h):在屏幕上顯示或在紙 上打印出所述測(cè)試指導(dǎo)的報(bào)告。
14、 根據(jù)權(quán)利要求12的方法,其中還包括步驟(i):其中步驟(a)還包括準(zhǔn)備預(yù)定格式的測(cè)試用例文檔源文件,所述格式包括占位符,和步驟(i)在步驟(a) - (g)期間或之間執(zhí)行,通過(guò)收集所述測(cè)試步驟(a) - (g)期 間的靜態(tài)和運(yùn)行時(shí)間信息及用所述靜態(tài)和運(yùn)行時(shí)間信息替換所述的占位符 來(lái)完成。
15、 根據(jù)權(quán)利要求12的方法,其中所述測(cè)試指導(dǎo)與所述受測(cè)試實(shí)體沒(méi)有直 接連接。
16、 根據(jù)權(quán)利要求12的方法,其中所述歩驟(e)中所述消息是從步驟(a) 中準(zhǔn)備的所述消息文件之一轉(zhuǎn)換來(lái)的,使得所述消息的格式符合所述通信 協(xié)議。
17、 根據(jù)權(quán)利要求12的方法,其中在步驟(f)中所述談判器進(jìn)行的確定是 否發(fā)生了通信誤差的檢査是通過(guò)比較所述另一消息的內(nèi)容和步驟(a)中準(zhǔn) 備的所述消息文件之一的內(nèi)容實(shí)現(xiàn)的。
18、 根據(jù)權(quán)利要求12的方法,其中所述的談判器和測(cè)試指導(dǎo)的每一個(gè)運(yùn)行 在分開(kāi)的測(cè)試計(jì)算機(jī)上。
19、 根據(jù)權(quán)利要求12的方法,其中所述測(cè)試指導(dǎo)和一個(gè)或多個(gè)談判器運(yùn)行 在一個(gè)測(cè)試計(jì)算機(jī)上。
20、 根據(jù)權(quán)利要求12的方法,其中所述的通信協(xié)議是SIP。
全文摘要
用于測(cè)試各實(shí)體使用的通信信號(hào)協(xié)議的相容性或強(qiáng)健性的架構(gòu)或系統(tǒng),該實(shí)體連接到一個(gè)基于IP的網(wǎng)絡(luò),特別地用于測(cè)試SIP啟動(dòng)實(shí)體或設(shè)備。在該架構(gòu)內(nèi),多個(gè)測(cè)試客戶(hù)由集中的測(cè)試控制器協(xié)調(diào),于是測(cè)試進(jìn)程和結(jié)果可以集中的方式被控制和監(jiān)控。該架構(gòu)使用簡(jiǎn)單的基于模板的測(cè)試腳本命令,易于書(shū)寫(xiě),不涉及復(fù)雜的編程結(jié)構(gòu)。
文檔編號(hào)H04L12/26GK101116287SQ200680001176
公開(kāi)日2008年1月30日 申請(qǐng)日期2006年5月8日 優(yōu)先權(quán)日2005年5月17日
發(fā)明者余兢聰, 周文聰 申請(qǐng)人:香港應(yīng)用科技研究院有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1