專利名稱:協(xié)議異常測試方法和系統(tǒng)、測試設備及控制設備的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡通信技術,特別涉及一種協(xié)議異常測試方法和系統(tǒng)、測試設備及 控制設備。
背景技術:
利用互聯(lián)網(wǎng)通信時,有時會出現(xiàn)通信故障,這些故障有很大一部分是由于安全產(chǎn) 品在協(xié)議處理方面不夠健壯引起的,例如,當設置有某一安全產(chǎn)品的設備接收到外來的異 常報文后,若該安全產(chǎn)品缺乏合法性判斷和保護功能,則很可能導致該設備的重啟或關鍵 功能失效。而重啟或關鍵功能失效引起的問題往往是致命的,對用戶危害性極大,對公司產(chǎn) 品造成極壞的負面影響。因此,協(xié)議異常測試在安全產(chǎn)品測試中具有至關重要的地位。目 前的協(xié)議異常測試方案包括采用專用的硬件測試設備或者專用的軟件測試工具?,F(xiàn)有專用的硬件測試設備或者專用的軟件測試工具是通過該專用的硬件測試設 備或者裝載有專用的軟件測試工具的PC機與被測設備進行報文協(xié)商,測試設備或者PC機 將異常值植入發(fā)送給被測設備的協(xié)商報文中,通過報文協(xié)商過程中被測設備的狀態(tài)(正常 工作或者重啟等)獲知測試結果。由于報文協(xié)商的主動端和被動端的協(xié)議狀態(tài)必須一致,否則無法通過進行報文協(xié) 商,因此現(xiàn)有專用測試設備(作為主動端)中需要開發(fā)和維護協(xié)議狀態(tài)機,以能夠?qū)Σ煌?被測設備進行測試,而開發(fā)協(xié)議狀態(tài)機需要較高的開發(fā)成本及開發(fā)周期。同時,現(xiàn)有技術中 由于測試設備只能作為主動端發(fā)起報文協(xié)商,只能將異常值(字段值)植入發(fā)送給被測設 備的協(xié)商報文中進行測試,而不能將異常值植入響應報文中進行測試,因此,被測試的報文 也不全面,影響測試質(zhì)量。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種協(xié)議異常測試方法和系統(tǒng)、測試設備及控制設備,降低 了測試成本,提高了測試質(zhì)量。本發(fā)明實施例提供了一種協(xié)議異常測試方法,包括獲取測試信息,所述測試信息包括待測報文名及異常字段值;用與所述待測報文名相對應的報文與被測設備進行報文協(xié)商,所述報文中包含有 所述異常字段值,所述被測設備與測試設備為同類設備;查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。本發(fā)明實施例還提供了一種協(xié)議異常測試方法,包括向測試設備發(fā)送測試信息,所述測試信息包含待測報文名和異常字段值;控制所述測試設備與被測設備用與所述待測報文名相對應的報文進行報文協(xié)商, 所述報文中包含有所述異常字段值,所述被測設備與測試設備為同類設備;查詢被測設備報文協(xié)商后的工作狀態(tài),獲取測試結果。本發(fā)明實施例提供了 一種測試設備,包括
接收模塊,用于獲取測試信息,所述測試信息包括待測報文名及異常字段值;報文協(xié)商模塊,用于用與所述待測報文名相對應的報文與被測設備進行報文協(xié) 商,所述報文中包含有所述異常字段值,所述被測設備與測試設備為同類設備;測試結果獲取模塊,查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。本發(fā)明實施例提供了 一種控制設備,包括發(fā)送模塊,用于向測試設備發(fā)送測試信息,所述測試信息包含待測報文名和異常 字段值;控制模塊,用于控制所述測試設備與被測設備用與所述待測報文名相對應的報 文進行報文協(xié)商,所述報文中包含有所述異常字段值,所述被測設備與測試設備為同類設 備;結果獲取模塊,用于查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。本發(fā)明實施例提供了一種協(xié)議異常測試系統(tǒng),包括被測設備、測試設備和控制設 備,其中所述控制設備,用于向所述測試設備發(fā)送測試信息,控制所述測試設備或者被測 設備主動發(fā)起所述測試設備與所述被測設備之間的報文協(xié)商過程,所述測試信息包括待測 報文名及異常字段值;所述測試設備,用于利用與所述待測報文名對應的報文與所述被測設備進行報文 協(xié)商,所述報文中包含有所述異常字段值,并通過查詢被測設備報文協(xié)商后的工作狀態(tài),獲 知被測設備的協(xié)議異常測試結果,所述測試設備為與所述被測設備同類的設備。由上述技術方案可知,本發(fā)明實施例所述測試方法中,通過控制設備向測試設備 或者被測設備發(fā)送啟動報文協(xié)商的過程,可以使測試設備或者被測設備主動發(fā)起報文協(xié) 商,使測試設備可以在發(fā)給被測設備的協(xié)商報文及發(fā)送給被測設備的響應報文中攜帶異常 的字段值,使被測報文更全面,提高測試質(zhì)量,同事,由于測試設備與被測設備具有相同的 協(xié)議狀態(tài),無需在測試設備端重新開發(fā)和維護協(xié)議狀態(tài)機,也降低了測試成本。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術采用的基于報文協(xié)商的報文異常檢測方法過程示意圖;圖2為本發(fā)明實施例一提供的協(xié)議異常測試方法的流程示意圖;圖3為本發(fā)明實施例二提供的協(xié)議異常測試方法的流程示意圖;圖4為本發(fā)明實施例三提供的協(xié)議異常測試方法的流程示意圖;圖5為本發(fā)明實施例四提供的協(xié)議異常測試方法的流程示意圖;圖6為本發(fā)明實施例五提供的測試設備的結構示意圖;圖7為本發(fā)明實施例六提供的控制設備的結構示意圖;圖8為本發(fā)明實施例七提供的協(xié)議異常測試系統(tǒng)的結構示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。為更清楚的描述本發(fā)明實施例,先簡述一下現(xiàn)有技術中的協(xié)議異常測試方法,如 圖1所示,圖1為現(xiàn)有技術采用的基于報文協(xié)商的報文異常檢測方法過程示意圖,如圖所 示,以基于以太網(wǎng)點對點協(xié)議(Point to Point Protocol over Ethernet,PPPoE)為例,包 括步驟11 主動端向被動端發(fā)送PPPoE初始化(PPPoE Active Discovery Initiation, PADI)報文。步驟12 被動端向主動端發(fā)送PPPoE服務提供(PPPoE Active Discovery Offer, PAD0)報文。步驟13 主動端向被動端發(fā)送 PPPoE 請求(PPPoE Active Discovery Request, PADR)報文。步驟14 被動端向主動端發(fā)送PPPoE會話(PPPoE Active Discovery Session-Confirmation, PADS)報文。在圖1所示報文協(xié)商過程中,后續(xù)報文的發(fā)送和接收必須建立在前面報文接收和 發(fā)送的基礎上,例如,PADR報文的發(fā)送必須在本端(被動端)已接收PADO報文,且成功處 理后才能進行。因此,在主動端和被動端需要建立協(xié)議狀態(tài)機,用于判斷前面的報文是否成 功處理。并且現(xiàn)有技術中由于測試設備只是作為主動端發(fā)起報文協(xié)商,例如,如圖1所示, 只能將異常值植入PADI報文和PADR報文中,而不能將異常值植入PADO報文和PADS報文 中,因此測試的報文不全面,影響測試質(zhì)量。下面將對本發(fā)明實施例采用的技術方案進行詳細描述。為更清楚的理解本發(fā)明實施例,先簡要闡述一下本發(fā)明實施例的主要技術思路1、采用與被測設備具有相同協(xié)議狀態(tài)的設備作為測試設備,使測試設備不用專門 開發(fā)和維護狀態(tài)協(xié)議機。具體的,可以將與被測設備同類的設備作為測試設備,例如,若被 測設備為路由器,則測試設備為與該路由器同類的路由器,這里“同類”的含義是兩者的協(xié) 議狀態(tài)機相同。因此,由于測試設備中已存在與被測設備相同的協(xié)議狀態(tài)機,無需重新開發(fā) 協(xié)議狀態(tài)機,可以降低開發(fā)成本,減少開發(fā)周期。2、采用控制設備控制測試設備或被測設備主動發(fā)起報文協(xié)商,使得測試設備可以 在發(fā)給被測設備的協(xié)商報文中植入異常值,也可以在響應被測設備發(fā)送的協(xié)商報文的響 應報文中植入異常值,使測試全面。例如,當測試設備作為主動端時,可以測試PADI報文 和PADR報文,當被測設備作為主動端時,可以測試PADO報文和PADS報文,實現(xiàn)可以測試 100%的報文。下面將對本發(fā)明實施例進行具體描述圖2為本發(fā)明實施例一提供的協(xié)議異常測試方法的流程示意圖,包括步驟21 測試設備獲取測試信息,所述測試信息包括待測報文名及異常字段值;具體的,測試設備需要向控制設備獲取測試信息。
步驟22 測試設備用與所述待測報文名相對應的報文與被測設備進行報文協(xié)商, 所述報文中包含有所述異常字段值,所述被測設備與測試設備為同類設備;具體地,測試設備可以根據(jù)控制設備的控制命令,主動向所述被測設備發(fā)送與所 述待測報文名相對應的協(xié)商報文,并在所述協(xié)商報文中植入所述異常字段值,即在待測試 的報文中的待測字段植入異常字段值。同樣的,被測設備也可以根據(jù)控制設備的控制命令 主動發(fā)起報文協(xié)商,則測試設備可以在向被測設備返回的響應報文中植入所述異常字段, 所述響應報文與所述待測報文名相對應。本發(fā)明實施例中,由于測試設備與被測設備為同類設備,因此,測試設備可以方便 的提供與被測設備相同的協(xié)議狀態(tài),而無需重新開發(fā)和維護狀態(tài)協(xié)議機。具體的,可以通 過將與被測設備同類的設備通過改造作為測試設備,使該設備具有接收控制設備命令的接 口,從而能夠使控制設備通過命令行方式將待測試信息(包括待測報文和異常字段值)下 發(fā)給測試設備,并能夠控制測試設備發(fā)起協(xié)議測試。步驟23 測試設備查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。具體包括測試設備向所述被測設備發(fā)送查詢信息;當在預設的時間范圍內(nèi)接收 到所述被測設備返回的所述查詢信息的應答信息時,則所述被測設備工作正常,即認為所 述被測設備在經(jīng)過異常協(xié)議測試后沒有死機,具有抵擋異常協(xié)議報文的能力,即比較健壯; 當在預設的時間范圍內(nèi)未接收到所述被測設備返回的所述查詢信息的應答信息時,則視為 所述被測設備經(jīng)過異常協(xié)議報文測試后工作異常,即抵御異常協(xié)議報文的能力較低,該設 備不夠健壯。本實施例所述的測試方法,可以方便的提供與被測設備同類的協(xié)議狀態(tài),從而進 行協(xié)議測試,而無需通過開發(fā)和維護協(xié)議狀態(tài)機來得到與不同的被測設備同類的協(xié)議狀 態(tài),只需要對被測設備進行一定的改造,使測試設備與控制設備之間以及被測設備與控制 設備之間能夠進行通信,因此,可以降低測試成本、減少用于開發(fā)專用測試設備的開發(fā)周 期。并且通過測試設備主動發(fā)起或者被動接收與被測設備的報文協(xié)商過程,可以在主動發(fā) 送給被測設備的協(xié)商報文及發(fā)送給被測設備的響應報文中攜帶異常的字段值,使對被測設 備的協(xié)議測試更全面,提高測試質(zhì)量。圖3為本發(fā)明實施例二提供的協(xié)議異常測試方法流程示意圖,如圖3所示,該過程 是從控制設備端描述該測試過程,包括步驟31 控制設備向測試設備發(fā)送測試信息,所述測試信息包含待測報文名和異
常字段值。具體的,控制設備可以根據(jù)需要對待測協(xié)議中所有協(xié)商報文的所有字段進行分 析,獲得測試信息。測試信息包括報文名、字段名和字段值,還可以包括序號、操作類型、字 段偏移和修改長度等信息。當然,可以理解的是,該測試信息也可以由控制設備從外界(其 他設備)直接獲得。步驟32 控制設備控制所述測試設備與被測設備用與所述待測報文名相對應的 報文進行報文協(xié)商,所述報文中包含有所述異常字段值,所述測試設備為與所述被測設備 同類的設備。具體地,可以是控制設備向所述測試設備發(fā)送測試命令,控制所述測試設備主動 向被測設備發(fā)送與所述待測報文名相對應的報文,所述報文中包括所述異常字段值;或者,也可以是控制設備向所述被測設備發(fā)送測試命令,控制所述被測設備向測試設備發(fā)送報文 進行報文協(xié)商,所述測試設備根據(jù)測試信息向所述被測設備返回響應報文,該響應報文與 所述待測報文名相對應,并在該響應報文中植入異常字段值,用于測試被測設備對該異常 報文的抵御能力。可以理解的是,本領域技術人員可以知道,為了能將與被測設備同類的設備作為 測試設備,需要對將作為測試設備的設備進行一定的改造,使該設備具有接收控制設備命 令的接口,從而能夠使控制設備通過命令行方式將待測試信息(包括待測報文和異常字段 值)下發(fā)給測試設備,并能夠控制測試設備發(fā)起協(xié)議測試。同樣的,本領域技術人員可以知道,為了使被測設備能夠接受控制設備的控制命 令主動發(fā)起報文協(xié)商,也需要對被測設備進行改造,使其具有接收控制設備控制命令的通
信接口。步驟33 控制設備查詢被測設備報文協(xié)商后的工作狀態(tài),獲取測試結果。具體的,控制設備可以向所述被測設備發(fā)送查詢信息;當在預設的時間范圍內(nèi)接 收到所述被測設備返回的所述查詢信息的應答信息時,則所述被測設備工作正常;當在預 設的時間范圍內(nèi)未接收到所述被測設備返回的所述查詢信息的應答信息時,則視為所述被 測設備經(jīng)過異常協(xié)議報文測試后工作異常,即抵御異常協(xié)議報文的能力較低,該設備不夠 健壯?;蛘?,控制設備還可以向所述測試設備發(fā)送獲取測試結果命令,控制設備根據(jù)所 述測試設備查詢所述被測設備的工作狀態(tài)后的返回結果獲知測試結果。具體地,測試設備 接收到控制設備發(fā)送的獲取測試結果命令后,向所述被測設備發(fā)送查詢消息,當在預設的 時間范圍內(nèi)接收到所述被測設備返回的所述查詢信息的應答信息時,即視為所述被測設備 在經(jīng)過異常協(xié)議測試后工作正常,具有抵擋異常協(xié)議報文的能力,比較健壯;當在預設的時 間范圍內(nèi)未接收到所述被測設備返回的所述查詢信息的應答信息時,則視為所述被測設備 在經(jīng)過異常協(xié)議測試后工作異常,即抵御異常協(xié)議報文的能力較低,該設備不夠健壯。之 后,測試設備將查詢到的測試結果發(fā)送給控制設備。本實施例通過將與被測設備同類的設備作為測試設備,可以方便的提供與被測設 備同類的協(xié)議,從而進行協(xié)議測試,而無需通過開發(fā)和維護協(xié)議狀態(tài)機來得到與不同的被 測設備同類的協(xié)議狀態(tài),只需要對被測設備進行一定的改造,使測試設備與控制設備之間 以及被測設備與控制設備之間能夠進行通信,因此,可以降低測試成本、減少用于開發(fā)專用 測試設備的開發(fā)周期;并且通過測試設備主動發(fā)起或者被動接收與被測設備的報文協(xié)商過 程,可以在主動發(fā)送給被測設備的協(xié)商報文及發(fā)送給被測設備的響應報文中攜帶異常的字 段值,使對被測設備的協(xié)議測試更全面,提高測試質(zhì)量。為更清楚的描述本發(fā)明實施例所述的技術方案,下面將根據(jù)報文協(xié)商發(fā)起端不 同,從整個測試系統(tǒng)的角度對該異常協(xié)議的測試方法進行詳細描述。圖4為本發(fā)明實施例三提供的異常協(xié)議測試方法流程示意圖,包括步驟401 控制設備啟動測試。步驟402 控制設備獲取配置文件,該配置文件中包括測試信息,配置文件可以從 外界讀取,也可以預先設置在控制設備內(nèi)。步驟403 控制設備根據(jù)配置文件建立有效的測試表,測試表包括一個或多個測
8試信息。測試信息包括報文名、字段名和字段值,還可以包括如下信息序號、操作類型、字 段偏移和修改長度等。待測試的協(xié)議報文及字段等可以按照表1所示的格式表 1 步驟404:控制設備根據(jù)測試表,判斷是否存在待測的下一條記錄,每條記錄包括 報文名和字段名,若是,選擇該記錄,之后執(zhí)行步驟405,否則,執(zhí)行步驟419。步驟405 控制設備判斷是否存在該選擇的記錄下的待測的下一個字段值,即可 以測試一條記錄的多個字段值,若是,選擇該字段值,之后執(zhí)行步驟406,否則,執(zhí)行步驟 419。在測試時,當字段值是1字節(jié)時,一般對字段值進行遍歷測試(從0到255全部測 試),當字段值大于1字節(jié)時,可以取協(xié)議正常值范圍中的最大值、最小值以及超出范圍的 臨界值等離散值。在配置字段值時,可以采用連續(xù)方式,也可以采用離散方式,例如W0-FF] 表示對字段進行0到255值進行遍歷測試,
表示只對0和255值進行測試。步驟406 控制設備將選擇的記錄及字段值(異常值)發(fā)送給測試設備,并向測試 設備發(fā)送觸發(fā)測試命令,觸發(fā)測試設備主動發(fā)起報文協(xié)商。上述是將報文名和字段名作為一個整體進行循環(huán)測試的,可以理解的是,將報文 名和字段名分開進行循環(huán)測試。即可以使用如下步驟替代上述的步驟404-406,包括第一 步,判斷是否存在待測的下一個報文名,當存在時,選擇該報文名,之后進入第二步,否則,結束測試;第二步,判斷是否存在該選擇的報文名下的待測的下一個字段名,當存在時,選 擇該字段名,之后進入第三步,否則,結束測試;第三步,判斷是否存在該選擇的字段名下的 待測的下一個字段值,當存在時,選擇該字段值,之后進入第四步,否則,結束測試;第四步, 將選擇的報文名、字段名和字段值都發(fā)送給測試設備。步驟407 控制設備進入等待狀態(tài),等待一定的報文協(xié)商時間。可以理解的是,該報文協(xié)商時間是可以根據(jù)具體需要進行設置的,該報文協(xié)商時 間即測試設備和被測設備根據(jù)測試信息進行的報文協(xié)商時間。步驟408 測試設備根據(jù)控制設備的觸發(fā)測試命令觸發(fā)測試,進入步驟409。步驟409 測試設備判斷待發(fā)送給被測設備的協(xié)商報文及字段是否與控制設備發(fā) 送的測試信息匹配,若是,執(zhí)行步驟410,否則,執(zhí)行步驟411。在匹配判斷時,當協(xié)商報文為控制設備發(fā)送的報文名對應的報文,且該協(xié)商報文 的某一字段為控制設備發(fā)送的字段名對應的字段時,表明該協(xié)商報文及字段與測試信息匹 配,否則為不匹配。步驟410 測試設備將控制設備發(fā)送的字段值(異常值)填充在該選擇的字段中, 進入步驟411。步驟411 測試設備封裝協(xié)商報文。具體的,步驟409-411的過程可以采用如下的判斷代碼框架進行If (g_iPattMode = = ENABLE&&Strcmp (g_sPattPkg,[具體報文])==0&&Strcmp (g_sPattField,[具體協(xié)議字段]==0)){//協(xié)議封裝H用控制設備發(fā)送過來的字段值g_sPattFldValUe進行替換}其中,g_iPattMode 協(xié)議異常測試開關(全局變量)g_sPattPkg 當前測試的協(xié)議報文標識(全局變量)g_sPattField 當前測試的協(xié)議字段標識(全局變量)g_sPattFldValue 當前測試的協(xié)議字段值(全局變量)步驟412 測試設備將封裝后的協(xié)商報文發(fā)送給被測設備,兩者進行報文協(xié)商。步驟413 控制設備在等待一定的協(xié)商時間(步驟407的等待時間到達)后,向測 試設備發(fā)送獲取測試結果命令,進入步驟414。步驟414 測試設備根據(jù)該獲取測試結果命令向被測設備發(fā)送查詢命令;具體的,該查詢命令可以是ping命令,通過ping命令查詢被測設備的工作狀態(tài)。步驟415 測試設備獲取測試結果;例如,在測試設備采用ping命令時如果被測設備可能完整地將ping命令的數(shù)據(jù) 返回,表明測試結果為被測設備處于正常狀態(tài),如果測試設備中的Ping程序在等不到被測 設備的返回數(shù)據(jù)時,提示超時(timeout)信息時,則此時的測試結果為被測設備處于重啟 或復位等不正常狀態(tài)。步驟416 測試設備將得到的測試結果返回給控制設備。
10
上述是控制設備通過測試設備獲取測試結果,可以理解的是,控制設備也可以直 接從被測設備獲取測試結果,即可以用下述步驟替代上述的步驟413-416,包括第一步, 控制設備向被測設備發(fā)送檢測命令,例如,Ping命令;第二步,控制設備獲取測試結果,例 如,當采用Ping命令時,若接收到被測設備返回的完整的ping命令的數(shù)據(jù),則獲取測試結 果為被測設備處于正常狀態(tài),當控制設備中的Ping程序在等不到被測設備的返回數(shù)據(jù)時, 提示超時(timeout)信息時,這時得到測試結果為被測設備處于重啟或復位等不正常狀 態(tài)。步驟417:控制設備保存測試結果,形成日志或報表。該步驟可選。步驟418 控制設備向測試設備發(fā)送清除命令,指示測試設備清除測試信息。或 者,控制設備向測試設備發(fā)送顯示命令,指示測試設備顯示測試信息等。該步驟可選。步驟419:結束。本實施例通過采用與被測設備同類的設備作為測試設備,可以降低開發(fā)成本,減 少開發(fā)時間;采用控制設備控制測試設備發(fā)起報文協(xié)商,可以測試從測試設備到被測設備 方向上的協(xié)商報文。圖5為本發(fā)明實施例四提供的協(xié)議異常測試方法流程示意圖,該過程從控制設備 控制被測設備端主動發(fā)起協(xié)議測試的過程對進行闡述,包括步驟501-505 與前述實施例中的步驟401-405相同。步驟506 控制設備將選擇的記錄及字段值(異常值)發(fā)送給測試設備。步驟507 控制設備向被測設備發(fā)送觸發(fā)測試命令,觸發(fā)被測設備主動發(fā)起報文 協(xié)商。步驟508 控制設備進入等待狀態(tài),等待一定的協(xié)商時間(可配置)。步驟509 被測設備接收到觸發(fā)測試命令后,向測試設備發(fā)送協(xié)商報文,發(fā)起報文 協(xié)商。步驟510 測試設備接收到被測設備發(fā)送的協(xié)商報文后,啟動測試設備進行報文處理。步驟511 測試設備判斷待發(fā)送給被測設備的響應報文及字段是否與控制設備發(fā) 送的測試信息匹配,若是,執(zhí)行步驟512,否則,執(zhí)行步驟513。在匹配判斷時,當響應報文為控制設備發(fā)送的報文名對應的報文,且該響應報文 的某一字段為控制設備發(fā)送的字段名對應的字段時,表明該響應報文及字段與測試信息匹 配,否則為不匹配。具體可以采用圖4所述實施中的步驟409-411的判斷方式。步驟512-521 與第二實施例的步驟410-419相同。本實施例通過采用與被測設備同類的設備作為測試設備,可以降低開發(fā)成本,減 少開發(fā)時間;采用控制設備控制被測設備發(fā)起報文協(xié)商,可以測試從被測設備到測試設備 方向上的協(xié)商報文的響應報文??梢岳斫獾氖牵绢I域技術人員可以知道,在上述實施例中,控制設備可以通過命 令行方式,或者,通過套接字(socket)方式,將選擇的測試信息發(fā)送給測試設備。具體的,在采用命令行方式時,由于測試設備需要接收控制設備的命令及測試信 息等,因此,測試設備在與被測設備同類的基礎上需要進行命令行改造和具有協(xié)議異常代 碼植入功能
1、命令行改造對于測試設備命令行進行改造,要求控制設備能通過命令行將要測試的協(xié)議字段 下發(fā)測試設備中,要求提供以下命令協(xié)議異常測試控制開關命令,所述控制開關命令用于控制所述測試設備起止測 試,具體代碼可以如[undo]patt enable協(xié)議異常測試字段配置清除命令,所述清除命令用于控制所述測試設備清除獲取 的測試測試信息,具體代碼可以如patt clear協(xié)議異常測試字段配置顯示命令,所述顯示命令用于控制所述測試設備顯示獲取 的測試測試信息,具體代碼可以如patt display具體協(xié)議異常測試字段配置下發(fā)命令,用于下發(fā)測試信息,具體代碼可以如patt pppoe<序號X操作類型X報文名X字段名X字段偏移X修改長度X 字段值〉。2、協(xié)議異常代碼植入根據(jù)具體的協(xié)議,在協(xié)議協(xié)商報文的封裝過程中植入異常代碼,需要檢查協(xié)議異 常測試開關是否打開,然后檢查協(xié)商報文和協(xié)議字段是否匹配,符合條件進行異常值封裝。 其基本框架可以為If (g_iPattMode = = ENABLE&&Strcmp (g_sPattPkg,[具體報文])==0&&Strcmp (g_sPattField,[具體協(xié)議字段]==0)){//協(xié)議封裝H用控制設備發(fā)送過來的字段值g_sPattFldValUe進行替換}其中,g_iPattMode 協(xié)議異常測試開關(全局變量)g_sPattPkg 當前測試的協(xié)議報文標識(全局變量)g_sPattField 當前測試的協(xié)議字段標識(全局變量)g_sPattFldValue 當前測試的協(xié)議字段值(全局變量)圖6為本發(fā)明實施例五提供的測試設備的結構示意圖,包括接收模塊61、報文協(xié) 商模塊62和測試結果獲取模塊63。其中接收模塊61,用于獲取測試信息,所述測試信息包括待測報文名及異常字段值;報文協(xié)商模塊62,用于用與所述待測報文名相對應的報文與被測設備進行報文協(xié) 商,所述報文中包含有所述異常字段值,所述被測設備與測試設備為同類設備;測試結果獲取模塊63,查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。進一步地,接收模塊61還用于接收控制設備的測試命令。報文協(xié)商模塊62包括 發(fā)送單元和異常字段植入單元,其中發(fā)送單元621,用于根據(jù)所述接收模塊61接收的測試命令向被測設備主動發(fā)送與 所述待測報文名相對應的包括所述異常字段值的協(xié)商報文;或者,用于返回所述被測設備 發(fā)送的協(xié)商報文的響應報文,所述響應報文與所述待測報文名相對應,所述響應報文中包 括所述異常字段值;
異常字段植入單元622,用于將所述接收模塊61所接收的測試信息中的異常字段 值植入與所述待測報文名相對應的協(xié)商報文或所述響應報文中。本實施例通過將與被測設備同類的設備作為測試設備,可以方便的提供與被測設 備同類的協(xié)議,從而進行協(xié)議測試,而無需通過開發(fā)和維護協(xié)議狀態(tài)機來得到與不同的被 測設備同類的協(xié)議狀態(tài),只需要對被測設備進行一定的改造,使測試設備與控制設備之間 以及被測設備與控制設備之間能夠進行通信,因此,可以降低測試成本、減少用于開發(fā)專用 測試設備的開發(fā)周期;并且通過測試設備主動發(fā)起或者被動接收與被測設備的報文協(xié)商過 程,可以在主動發(fā)送給被測設備的協(xié)商報文及發(fā)送給被測設備的響應報文中攜帶異常的字 段值,使對被測設備的協(xié)議測試更全面,提高測試質(zhì)量。圖7為本發(fā)明實施例六提供的控制設備的結構示意圖,包括發(fā)送模塊71、控制模 塊72和結果獲取模塊73。其中發(fā)送模塊71,用于向測試設備發(fā)送測試信息,所述測試信息包含待測報文名和異 常字段值;控制模塊72,用于控制所述測試設備與被測設備用與所述待測報文名相對應的報 文進行報文協(xié)商,所述報文中包含有所述異常字段值,所述測試設備為與所述被測設備同 類的設備;結果獲取模塊73,用于查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。具體地,控制模塊72包括第一控制單元和第二控制單元,其中第一控制單元721,用于向所述測試設備發(fā)送測試命令,控制所述測試設備主動向 被測設備發(fā)送與所述待測報文名相對應的報文,所述報文中包括所述異常字段值;第二控制單元722,用于向所述被測設備發(fā)送測試命令,控制所述被測設備向測試 設備發(fā)送報文,所述測試設備向所述被測設備返回的響應報文與所述待測報文名相對應, 所述響應報文中包括所述異常字段值。具體的,結果獲取模塊73包括工作狀態(tài)查詢單元和測試結果獲取單元,其中工作狀態(tài)查詢單元731,用于向所述被測設備發(fā)送查詢信息;測試結果獲取單元732,用于當在預設的時間范圍內(nèi)接收到所述被測設備返回的 所述查詢信息的應答信息時,確定所述被測設備工作正常;當在預設的時間范圍內(nèi)未接收 到所述被測設備返回的所述查詢信息的應答信息時,確定所述被測設備工作異常??梢岳斫獾氖?,工作狀態(tài)查詢單元731還可以用于向所述測試設備發(fā)送查詢信 息,則此時測試結果獲取單元732可以直接根據(jù)所述測試設備向所述被測設備查詢后返回 的結果獲得測試結果。具體可參見前述實施例,此處不再贅述。本實施例通過采用與被測設備同類的設備作為測試設備,可以降低開發(fā)成本,減 少開發(fā)時間;采用控制設備控制測試設備或者被測設備發(fā)起報文協(xié)商,可以使測試的協(xié)商 報文更全面。圖8為本發(fā)明實施例七提供的協(xié)議異常測試系統(tǒng)的結構示意圖,包括被測設備 81、測試設備82和控制設備83。其中控制設備83,用于向所述測試設備82發(fā)送測試信息,控制所述測試設備82或者被 測設備81主動發(fā)起所述測試設備82與所述被測設備81之間的報文協(xié)商過程,所述測試信 息包括待測報文名及異常字段值;
測試設備82,用于利用與所述待測報文名對應的報文與所述被測設備81進行報 文協(xié)商,所述報文中包含有所述異常字段值,并通過查詢被測設備報文協(xié)商后的工作狀態(tài), 獲知被測設備的協(xié)議異常測試結果,所述測試設備82為與所述被測設備81同類的設備。具體的,測試設備82可以包括命令行模塊,所述命令行模塊用于接收控制設備83 通過命令行方式發(fā)送的測試信息;或者,測試設備82包括守護程序模塊,所述守護程序模 塊用于接收控制設備83通過套接字(socket)方式發(fā)送的測試信息。在通訊方式上,控制 設備83可以通過串口、遠程網(wǎng)絡(Telnet)或者安全殼(Secure Shell, SSH)方式與測試設 備82或者與被測設備81連接。在一些情況下,例如,控制設備83中只設置了一張網(wǎng)卡,為了實現(xiàn)控制設備與兩 個設備(測試設備和被測設備)的通信,需要設置交換機,該交換機與所述被測設備、測試 設備和控制設備連接,用于使所述被測設備與控制設備及所述測試設備與控制設備通信。本實施例通過采用與被測設備同類的設備作為測試設備,可以降低開發(fā)成本,減 少開發(fā)時間;采用控制設備控制測試設備或者被測設備發(fā)起報文協(xié)商,可以使測試的協(xié)商 報文更全面。現(xiàn)有技術中利用專用測試設備進行測試時,需要根據(jù)實際需要實現(xiàn)完整的協(xié)議狀 態(tài)機,使測試設備與被測設備的協(xié)議狀態(tài)一致,因此,需要非常清楚的知道被測設備的協(xié)議 實現(xiàn)細節(jié),并開發(fā)相應的協(xié)議狀態(tài)機,無疑會增加測試難度和代碼量,勢必會增加開發(fā)周期 和開發(fā)成本及人員投入。而在上述實施例中,由于測試設備是由同類被測設備改造而成,較 方便的實現(xiàn)了與被測設備協(xié)議狀態(tài)一致,因此不需要另外開發(fā)協(xié)議狀態(tài)機,協(xié)議狀態(tài)機由 設備本身維護,開發(fā)難度大大降低,只需要進行命令行改造和協(xié)議異常代碼植入即可,從而 加快開發(fā)進度,縮短開發(fā)周期,降低開發(fā)成本。并且,上述實施例可以實現(xiàn)測試設備主動發(fā) 起報文測試過程和測試設備被動進行報文測試過程,實現(xiàn)測試的協(xié)商報文的全面性。本領域普通技術人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過 程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序 在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、FLASH、磁 碟或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案而非對其進行限制, 盡管參照較佳實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依 然可以對本發(fā)明的技術方案進行修改或者等同替換,而這些修改或者等同替換亦不能使修 改后的技術方案脫離本發(fā)明技術方案的精神和范圍。
權利要求
一種協(xié)議異常測試方法,其特征在于,包括獲取測試信息,所述測試信息包括待測報文名及異常字段值;用與所述待測報文名相對應的報文與被測設備進行報文協(xié)商,所述報文中包含有所述異常字段值,所述被測設備與測試設備為同類設備;查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。
2.根據(jù)權利要求1所述的協(xié)議異常測試方法,其特征在于,所述用與所述待測報文名 相對應的報文與被測設備進行報文協(xié)商包括根據(jù)控制設備的控制命令,向所述被測設備發(fā)送與所述待測報文名相對應的協(xié)商報文;或者返回所述被測設備發(fā)送的協(xié)商報文的響應報文,所述響應報文與所述待測報文名相對應。
3.根據(jù)權利要求1所述的協(xié)議異常測試方法,其特征在于,所述查詢被測設備報文協(xié) 商后的工作狀態(tài),獲得測試結果包括向所述被測設備發(fā)送查詢信息;當在預設的時間范圍內(nèi)接收到所述被測設備返回的所述查詢信息的應答信息時,則所 述被測設備工作正常;當在預設的時間范圍內(nèi)未接收到所述被測設備返回的所述查詢信息的應答信息時,則 所述被測設備工作異常。
4.一種協(xié)議異常測試方法,其特征在于,包括向測試設備發(fā)送測試信息,所述測試信息包含待測報文名和異常字段值; 控制所述測試設備與被測設備用與所述待測報文名相對應的報文進行報文協(xié)商,所述 報文中包含有所述異常字段值,所述被測設備與測試設備為同類設備; 查詢被測設備報文協(xié)商后的工作狀態(tài),獲取測試結果。
5.根據(jù)權利要求4所述方法,其特征在于,所述控制所述測試設備與被測設備用與所 述待測報文名相對應的報文進行報文協(xié)商包括向所述測試設備發(fā)送測試命令,控制所述測試設備向被測設備發(fā)送與所述待測報文名 相對應的報文;或者向所述被測設備發(fā)送測試命令,控制所述被測設備向測試設備發(fā)送報文,所述測試設 備向所述被測設備返回的響應報文與所述待測報文名相對應的。
6.根據(jù)權利要求4或5所述的方法,其特征在于,所述查詢被測設備報文協(xié)商后的工作 狀態(tài),獲取測試結果包括向所述被測設備發(fā)送查詢信息;當在預設的時間范圍內(nèi)接收到所述被測設備返回的所述查詢信息的應答信息時,則所 述被測設備工作正常;當在預設的時間范圍內(nèi)未接收到所述被測設備返回的所述查詢信息的應答信息時,則 所述被測設備工作異常。
7.—種測試設備,其特征在于,包括接收模塊,用于獲取測試信息,所述測試信息包括待測報文名及異常字段值;報文協(xié)商模塊,用于用與所述待測報文名相對應的報文與被測設備進行報文協(xié)商,所 述報文中包含有所述異常字段值,所述被測設備與測試設備為同類設備;測試結果獲取模塊,查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。
8.根據(jù)權利要求7所述的測試設備,其特征在于,所述接收模塊還用于接收控制設備 的測試命令;所述報文協(xié)商模塊包括發(fā)送單元,用于根據(jù)所述接收模塊接收的測試命令向被測設備主動發(fā)送與所述待測報 文名相對應的包括所述異常字段值的協(xié)商報文;或者,用于返回所述被測設備發(fā)送的協(xié)商 報文的響應報文,所述響應報文與所述待測報文名相對應的,所述響應報文中包括所述異常字段值;異常字段植入單元,用于將所述接收模塊所接收的測試信息中的異常字段值植入與所 述待測報文名相對應的協(xié)商報文或所述響應報文中。
9.一種控制設備,其特征在于,包括發(fā)送模塊,用于向測試設備發(fā)送測試信息,所述測試信息包含待測報文名和異常字段值;控制模塊,用于控制所述測試設備與被測設備用與所述待測報文名相對應的報文進行 報文協(xié)商,所述報文中包含有所述異常字段值,所述被測設備與測試設備為同類設備; 結果獲取模塊,用于查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。
10.根據(jù)權利要求9所述的控制設備,其特征在于,所述控制模塊包括第一控制單元,用于向所述測試設備發(fā)送測試命令,控制所述測試設備主動向被測設 備發(fā)送與所述待測報文名相對應的報文,所述報文中包括所述異常字段值;第二控制單元,用于向所述被測設備發(fā)送測試命令,控制所述被測設備向測試設備發(fā) 送報文,所述測試設備向所述被測設備返回的響應報文與所述待測報文名相對應,所述響 應報文中包括所述異常字段值。
11.根據(jù)權利要求9所述的控制設備,其特征在于,所述結果獲取模塊包括 工作狀態(tài)查詢單元,用于向所述被測設備發(fā)送查詢信息;測試結果獲取單元,用于當在預設的時間范圍內(nèi)接收到所述被測設備返回的所述查詢 信息的應答信息時,確定所述被測設備工作正常;當在預設的時間范圍內(nèi)未接收到所述被 測設備返回的所述查詢信息的應答信息時,確定所述被測設備工作異常。
12.—種協(xié)議異常測試系統(tǒng),其特征在于,包括被測設備、測試設備和控制設備,其中 所述控制設備,用于向所述測試設備發(fā)送測試信息,控制所述測試設備或者被測設備主動發(fā)起所述測試設備與所述被測設備之間的報文協(xié)商過程,所述測試信息包括待測報文 名及異常字段值;所述測試設備,用于利用與所述待測報文名對應的報文與所述被測設備進行報文協(xié) 商,所述報文中包含有所述異常字段值,并通過查詢被測設備報文協(xié)商后的工作狀態(tài),獲知 被測設備的協(xié)議異常測試結果,所述被測設備與測試設備為同類設備。
13.根據(jù)權利要求12所述的系統(tǒng),其特征在于,所述控制設備通過串口、遠程網(wǎng)絡 Telnet或者安全殼SSH方式與所述測試設備及所述被測設備連接。
全文摘要
本發(fā)明公開了一種協(xié)議異常測試方法和系統(tǒng)、測試設備及控制設備。該方法包括獲取測試信息,所述測試信息包括待測報文名及異常字段值;用與所述待測報文名相對應的報文與被測設備進行報文協(xié)商,所述報文中包含有所述異常字段值,所述被測設備與測試設備為同類設備;查詢被測設備報文協(xié)商后的工作狀態(tài),獲得測試結果。通過本發(fā)明實施例可以降低開發(fā)成本,減少開發(fā)時間,使測試的協(xié)商報文更全面。
文檔編號H04L12/26GK101931564SQ20091008792
公開日2010年12月29日 申請日期2009年6月25日 優(yōu)先權日2009年6月25日
發(fā)明者楊敬騰, 邱國平 申請人:成都市華為賽門鐵克科技有限公司