本發(fā)明涉及計(jì)算機(jī)測試技術(shù)領(lǐng)域,尤指一種北向接口測試裝置和北向接口的測試方法。
背景技術(shù):
北向接口為設(shè)備廠商提供給運(yùn)營商的接口,運(yùn)營商可以通過北向接口統(tǒng)一監(jiān)管各個(gè)設(shè)備廠商的設(shè)備,監(jiān)控設(shè)備廠商告警、性能以及開通業(yè)務(wù)。隨著第三代移動通信技術(shù)(3rd-Generation,簡稱為:3G)、4G網(wǎng)絡(luò)建設(shè)的發(fā)展,北向接口在運(yùn)營商和設(shè)備廠商之間的橋梁作用越來越重要,北向接口的使用性能成為設(shè)備廠商關(guān)注的重要特征。
目前的主流北向接口包括公共對象請求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,簡稱為:CORBA)接口、多重技術(shù)操作系統(tǒng)(Multi technology operations systems interface,簡稱為:MTOSI)接口以及新一代的軟件定義網(wǎng)絡(luò)(Software Defined Network,簡稱為:SDN)的北向,即SDN的restconf北向接口;上述這些主流北向接口通常基于特定的協(xié)議標(biāo)準(zhǔn)定義各自的業(yè)務(wù)接口。但是由于業(yè)務(wù)接口的數(shù)量較多,采用現(xiàn)有技術(shù)的測試工具測試北向接口的業(yè)務(wù)接口時(shí),需要根據(jù)待測試的北向接口的業(yè)務(wù)接口的功能,對該業(yè)務(wù)接口進(jìn)行硬編碼,因此,在測試中只能實(shí)現(xiàn)對業(yè)務(wù)接口的固定功能進(jìn)行自動化測試;如果需要對功能發(fā)生變化的業(yè)務(wù)接口或者對增加新功能的業(yè)務(wù)接口進(jìn)行測量,就需要對該測試工具的代碼進(jìn)行變更或者對新實(shí)現(xiàn)功能進(jìn)行硬編碼,以實(shí)現(xiàn)對該業(yè)務(wù)接口的不同功能的自動化測試。
顯然地,采用現(xiàn)有技術(shù)中的測試工具測試北向接口時(shí),由于需要通過對北向接口的業(yè)務(wù)接口進(jìn)行硬編碼才能實(shí)現(xiàn)對業(yè)務(wù)接口的固定功能進(jìn)行測試,而導(dǎo)致北向接口的自動化測試能力限制較大的問題。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種北向接口測試裝置和北向接口的測試方法,以解決采用現(xiàn)有技術(shù)中的測試工具測試北向接口時(shí),由于需要通過對北向接口的業(yè)務(wù)接口進(jìn)行硬編碼才能對業(yè)務(wù)接口的實(shí)現(xiàn)固定功能進(jìn)行測試,而導(dǎo)致北向接口的自動化測試能力限制較大的問題。
第一方面,本發(fā)明提供一種北向接口測試裝置,包括:腳本執(zhí)行模塊和命令執(zhí)行模塊;
其中,所述腳本執(zhí)行模塊,用于執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例,根據(jù)所述腳本用例調(diào)用相應(yīng)地請求報(bào)文,并向命令執(zhí)行模塊發(fā)送包括所述請求報(bào)文的執(zhí)行命令;
所述命令執(zhí)行模塊,用于根據(jù)所述請求報(bào)文的內(nèi)容執(zhí)行相應(yīng)的測試操作,并將執(zhí)行結(jié)果返回給所述腳本執(zhí)行模塊,所述請求報(bào)文用于對當(dāng)前測試的北向接口對應(yīng)的通訊接口進(jìn)行測試。
在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述腳本執(zhí)行模塊當(dāng)前執(zhí)行的腳本用例中包括測試通知的任務(wù),所述北向接口測試裝置還包括:通知接收模塊;所述腳本執(zhí)行模塊,還用于在執(zhí)行所述腳本用例之后,向所述通知接收模塊發(fā)送第一訂閱命令;
所述通知接收模塊,用于獲取所述第一訂閱命令指示的測試通知,并將所述獲取的測試通知返回給所述腳本執(zhí)行模塊;
所述腳本執(zhí)行模塊,還用于向所述通知接收模塊發(fā)送取消訂閱命令。
在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述北向接口測試裝置還包括:初始化模塊和腳本加載模塊;所述初始化模塊,用于在所述腳本執(zhí)行模塊執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例之前,初始化腳本加載模塊加載所述預(yù)先開發(fā)的腳本,初始化所述命令執(zhí)行模塊的參數(shù)和所述通知接收模塊的參數(shù),其中,所述腳本執(zhí)行模塊執(zhí)行的腳本用例為根據(jù)所述腳本加載模塊加載所述腳本中的各腳本用例所獲取的,所述腳本包括所述腳本用例和腳本方法,所述腳本方法為所述腳本用例的執(zhí)行方法;
所述通知接收模塊,還用于在初始化后持續(xù)接收服務(wù)器發(fā)送的通知。
根據(jù)第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中, 所述當(dāng)前測試的北向接口為公共對象請求代理體系結(jié)構(gòu)CORBA接口,所述初始化模塊用于初始化命令執(zhí)行模塊的參數(shù),具體包括:初始化對象請求代理ORB;
所述初始化模塊用于初始化所述通知接收模塊的參數(shù),具體包括:通過對象管理組織OMG標(biāo)準(zhǔn),指示所述通知接收模塊調(diào)用接收所述服務(wù)器發(fā)送的通知;
所述初始化模塊,還用于在所述腳本執(zhí)行模塊執(zhí)行所述腳本用例之前,向所述腳本執(zhí)行模塊發(fā)送登陸命令,所述登陸命令中包括登陸的腳本方法;
所述腳本執(zhí)行模塊,還用于根據(jù)所述登陸命令執(zhí)行所述登陸的腳本方法,根據(jù)所述登陸的腳本方法調(diào)用相應(yīng)地登陸請求報(bào)文,并向所述命令執(zhí)行模塊發(fā)送包括所述登陸請求報(bào)文的執(zhí)行登陸命令;
所述命令執(zhí)行模塊,還用于根據(jù)所述接收到的登陸請求報(bào)文執(zhí)行CORBA的動態(tài)調(diào)用,并將執(zhí)行結(jié)果返回給所述腳本執(zhí)行模塊。
根據(jù)第一方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述當(dāng)前測試的北向接口為多重技術(shù)操作系統(tǒng)MTOSI接口或者軟件定義網(wǎng)絡(luò)SDN的北向,所述初始化模塊用于初始化命令執(zhí)行模塊的參數(shù),具體包括:初始化用于構(gòu)造超文本傳輸協(xié)議HTTP請求報(bào)文的統(tǒng)一資源定位符URL;
所述初始化模塊用于初始化所述通知接收模塊的參數(shù),具體包括:訂閱MTOSI通知;
所述通知接收模塊,還用于在所述初始化模塊初始化所述通知接收模塊的參數(shù)之后,向所述腳本執(zhí)行模塊發(fā)送第二訂閱命令,所述第二訂閱命令中包括訂閱的腳本方法;
所述腳本執(zhí)行模塊,還用于根據(jù)所述第二訂閱命令執(zhí)行所述訂閱的腳本方法,根據(jù)所述訂閱的腳本方法調(diào)用相應(yīng)地訂閱請求報(bào)文,并向所述命令執(zhí)行模塊發(fā)送包括所述訂閱請求報(bào)文的執(zhí)行訂閱命令;
所述命令執(zhí)行模塊,還用于根據(jù)所述訂閱請求報(bào)文執(zhí)行HTTP請求調(diào)用,并將執(zhí)行結(jié)果返回給所述腳本執(zhí)行模塊。
根據(jù)第一方面、第一方面的第一種到第四種可能的實(shí)現(xiàn)方式中任意一種, 在第五種可能的實(shí)現(xiàn)方式中,所述北向接口測試裝置還包括結(jié)果生成模塊;所述腳本執(zhí)行模塊,還用于在所述命令執(zhí)行模塊將所述執(zhí)行結(jié)果返回給所述腳本執(zhí)行模塊之后,將所述執(zhí)行結(jié)果傳輸給所述結(jié)果生成模塊;
所述結(jié)果生成模塊,用于輸出所述執(zhí)行結(jié)果,所述執(zhí)行結(jié)果包括已測試的所有北向接口,以及每個(gè)所述北向接口的測試次數(shù)和測試時(shí)間。
根據(jù)第一方面、第一方面的第一種到第四種可能的實(shí)現(xiàn)方式中任意一種,在第六種可能的實(shí)現(xiàn)方式中,所述腳本執(zhí)行模塊執(zhí)行所述腳本用例,具體包括:按照所述腳本中各腳本用例的順序依次執(zhí)行;和/或,
所述北向接口測試裝置還包括記錄模塊;所述腳本執(zhí)行模塊,還用于在執(zhí)行所述腳本用例的過程中,將所述腳本用例的執(zhí)行信息和異常信息發(fā)送給所述記錄模塊;
所述記錄模塊,用于記錄并展示所述腳本用例的執(zhí)行信息和異常信息。
第二方面,本發(fā)明提供一種北向接口的測試方法,包括:
腳本執(zhí)行模塊執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例,根據(jù)所述腳本用例調(diào)用相應(yīng)地請求報(bào)文,并向命令執(zhí)行模塊發(fā)送包括所述請求報(bào)文的執(zhí)行命令;
所述命令執(zhí)行模塊根據(jù)所述請求報(bào)文的內(nèi)容執(zhí)行相應(yīng)的測試操作,并將執(zhí)行結(jié)果返回給所述腳本執(zhí)行模塊,所述請求報(bào)文用于對當(dāng)前測試的北向接口對應(yīng)的通訊接口的進(jìn)行測試。
在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述腳本執(zhí)行模塊當(dāng)前執(zhí)行的腳本用例中包括測試通知的任務(wù),所述腳本執(zhí)行所述腳本用例之后,還包括:
所述腳本執(zhí)行模塊向通知接收模塊發(fā)送第一訂閱命令;
所述通知接收模塊獲取所述第一訂閱命令指示的測試通知,并將所述獲取的測試通知返回給所述腳本執(zhí)行模塊;
所述腳本執(zhí)行模塊向所述通知接收模塊發(fā)送取消訂閱命令。
在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述腳本執(zhí)行模塊執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例之前,還包括:
初始化模塊初始化腳本加載模塊加載所述預(yù)先開發(fā)的腳本,初始化所述 命令執(zhí)行模塊的參數(shù)和所述通知接收模塊的參數(shù),其中,所述腳本執(zhí)行模塊執(zhí)行的腳本用例為根據(jù)所述腳本加載模塊加載所述腳本中的各腳本用例所獲取的,所述腳本包括所述腳本用例和腳本方法,所述腳本方法為所述腳本用例的執(zhí)行方法;
所述初始化模塊初始化所述通知接收模塊的參數(shù)之后,還包括:
所述通知接收模塊在初始化后持續(xù)接收服務(wù)器發(fā)送的通知。
根據(jù)第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述當(dāng)前測試的北向接口為公共對象請求代理體系結(jié)構(gòu)CORBA接口,所述初始化命令執(zhí)行模塊的參數(shù),包括:初始化對象請求代理ORB;
所述初始化所述通知接收模塊的參數(shù),包括:通過對象管理組織OMG標(biāo)準(zhǔn),指示所述通知接收模塊調(diào)用接收所述服務(wù)器發(fā)送的通知;
所述腳本執(zhí)行模塊執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例之前,還包括:
所述初始化模塊向所述腳本執(zhí)行模塊發(fā)送登陸命令,所述登陸命令中包括登陸的腳本方法;
所述腳本執(zhí)行模塊根據(jù)所述登陸命令執(zhí)行所述登陸的腳本方法,根據(jù)所述登陸的腳本方法調(diào)用相應(yīng)地登陸請求報(bào)文,并向所述命令執(zhí)行模塊發(fā)送包括所述登陸請求報(bào)文的執(zhí)行登陸命令;
所述命令執(zhí)行模塊根據(jù)所述接收到的登陸請求報(bào)文執(zhí)行CORBA的動態(tài)調(diào)用,并將執(zhí)行結(jié)果返回給所述腳本執(zhí)行模塊。
根據(jù)第二方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述當(dāng)前測試的北向接口為多重技術(shù)操作系統(tǒng)MTOSI接口或者軟件定義網(wǎng)絡(luò)SDN的北向,所述初始化命令執(zhí)行模塊的參數(shù),包括:初始化用于構(gòu)造超文本傳輸協(xié)議HTTP請求報(bào)文的統(tǒng)一資源定位符URL;
所述初始化所述通知接收模塊的參數(shù),包括:訂閱MTOSI通知;
所述初始化模塊初始化所述通知接收模塊的參數(shù)之后,還包括:
所述通知接收模塊向所述腳本執(zhí)行模塊發(fā)送第二訂閱命令,所述第二訂閱命令中包括訂閱的腳本方法;
所述腳本執(zhí)行模塊根據(jù)所述第二訂閱命令執(zhí)行所述訂閱的腳本方法,根據(jù)所述訂閱的腳本方法調(diào)用相應(yīng)地訂閱請求報(bào)文,并向所述命令執(zhí)行模塊發(fā)送包括所述訂閱請求報(bào)文的執(zhí)行訂閱命令;
所述命令執(zhí)行模塊根據(jù)所述訂閱請求報(bào)文執(zhí)行HTTP請求調(diào)用,并將執(zhí)行結(jié)果返回給所述腳本執(zhí)行模塊。
根據(jù)第二方面、第二方面的第一種到第四種可能的實(shí)現(xiàn)方式中任意一種,在第五種可能的實(shí)現(xiàn)方式中,所述命令執(zhí)行模塊將執(zhí)行結(jié)果返回給所述腳本執(zhí)行模塊之后,還包括:
所述腳本執(zhí)行模塊將所述執(zhí)行結(jié)果傳輸給結(jié)果生成模塊;
所述結(jié)果生成模塊輸出所述執(zhí)行結(jié)果,所述執(zhí)行結(jié)果包括已測試的所有北向接口,以及每個(gè)所述北向接口的測試次數(shù)和測試時(shí)間。
根據(jù)第二方面、第二方面的第一種到第四種可能的實(shí)現(xiàn)方式中任意一種,在第六種可能的實(shí)現(xiàn)方式中,所述腳本執(zhí)行模塊執(zhí)行所述腳本用例,包括:
所述腳本執(zhí)行模塊按照所述腳本中各腳本用例的順序依次執(zhí)行;和/或,
所述腳本執(zhí)行模塊執(zhí)行所述腳本用例的過程中,還包括:
所述腳本執(zhí)行模塊將所述腳本用例的執(zhí)行信息和異常信息發(fā)送給記錄模塊;
所述記錄模塊記錄并展示所述腳本用例的執(zhí)行信息和異常信息。
本發(fā)明提供的北向接口測試裝置和北向接口的測試方法,通過腳本執(zhí)行模塊執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例,并根據(jù)該腳本用例調(diào)用相應(yīng)地請求報(bào)文,從而向命令執(zhí)行模塊發(fā)送包括該請求報(bào)文的執(zhí)行命令,進(jìn)而通過命令執(zhí)行模塊根據(jù)該請求報(bào)文的內(nèi)容執(zhí)行相應(yīng)的測試操作,并將執(zhí)行結(jié)果返回給腳本執(zhí)行模塊,本實(shí)施例中的請求報(bào)文用于對當(dāng)前測試的北向接口對應(yīng)的通訊接口進(jìn)行測試,即本發(fā)明通過腳本執(zhí)行模塊對腳本用例的測試邏輯,調(diào)用對北向接口執(zhí)行相應(yīng)測試功能的請求文本,從而通過調(diào)用命令執(zhí)行模塊執(zhí)行上述調(diào)用的請求文本以實(shí)現(xiàn)腳本用例中編輯的對北向接口進(jìn)行測試的任務(wù);本發(fā)明解決了采用現(xiàn)有技術(shù)中的測試工具測試北向接口時(shí),由于需要通過對北向接口的業(yè)務(wù)接口進(jìn)行硬編碼才能對業(yè)務(wù)接口的實(shí)現(xiàn)固定功能進(jìn)行測試, 而導(dǎo)致北向接口的自動化測試能力限制較大的問題。
附圖說明
附圖用來提供對本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本申請的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
圖1為北向接口的應(yīng)用場景的示意圖;
圖2為本發(fā)明實(shí)施例提供的一種北向接口測試裝置的結(jié)構(gòu)示意圖;
圖3為圖2所示實(shí)施例提供的北向接口測試裝置的測試原理圖;
圖4為本發(fā)明實(shí)施例提供的另一種北向接口測試裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例提供的又一種北向接口測試裝置的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例提供的一種北向接口的測試方法的流程圖;
圖7為本發(fā)明實(shí)施例提供的另一種北向接口的測試方法的流程圖;
圖8為本發(fā)明實(shí)施例提供的又一種北向接口的測試方法的流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
如圖1所示,為北向接口的應(yīng)用場景的示意圖。其中,無填充的方塊代表服務(wù)器端,具有填充的方塊代表客戶端,在北向接口的對接過程中,用戶直接可見的就是設(shè)備廠商所提供的接口定義,即圖1中的北向接口業(yè)務(wù)接口,例如對于CORBA接口,就是接口描述語言(Interface Description language,簡稱為:IDL)定義的接口簇,對于MTOSI接口,就是網(wǎng)絡(luò)服務(wù) 描述語言(Web Service Description language,簡稱為:WSDL)定義的接口簇,對于SDN北向接口,就是一系列以編號排定的文件(Request For Comments,簡稱為:RFC)6020中的定義的一種模型定義語音,即YANG定義的接口簇,上述北向接口業(yè)務(wù)接口還可以為其它形式的業(yè)務(wù)接口,客戶端調(diào)用的是北向接口專門的編譯器生成的接口定義。需要說明的是,北向接口協(xié)議的原理類似于開放式系統(tǒng)互聯(lián)(Open System Interconnection,簡稱為:OSI)的七層通訊協(xié)議,即北向接口也是層模型,上述接口簇定義為最上層,接口簇的下面有一層或多層其它通訊協(xié)議,可以統(tǒng)稱為通訊接口。
在圖1所示應(yīng)用場景中,為了實(shí)現(xiàn)某項(xiàng)功能,即北向接口客戶端實(shí)現(xiàn),需要調(diào)用北向接口業(yè)務(wù)接口,該北向接口業(yè)務(wù)接口將輸入轉(zhuǎn)換后調(diào)用通訊接口;服務(wù)器端的通訊接口收到調(diào)用通訊接口的請求后,并轉(zhuǎn)換為北向接口業(yè)務(wù)接口的調(diào)用請求,然后調(diào)用北向接口服務(wù)器端實(shí)現(xiàn)。
下面以具體的實(shí)施例對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明,本發(fā)明各實(shí)施例都可以應(yīng)用與圖1所示北向接口的應(yīng)用場景中,對北向接口業(yè)務(wù)接口對應(yīng)的通訊接口進(jìn)行自動化測試。下面這幾個(gè)具體的實(shí)施例可以相互結(jié)合,對于相同或相似的概念或過程可能在某些實(shí)施例不再贅述。
圖2為本發(fā)明實(shí)施例提供的一種北向接口測試裝置的結(jié)構(gòu)示意圖。本實(shí)施例提供的北向接口測試裝置適用于對北向接口業(yè)務(wù)接口進(jìn)行測試的情況中,該北向接口測試裝置通常以硬件和軟件的方式實(shí)現(xiàn),例如集成在測試設(shè)備的處理器中,供處理器調(diào)用執(zhí)行。如圖2所示,本實(shí)施例提供的北向接口測試裝置具體包括:腳本執(zhí)行模塊11和命令執(zhí)行模塊12。
其中,腳本執(zhí)行模塊11,用于執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例,根據(jù)所述腳本用例調(diào)用相應(yīng)地請求報(bào)文,并向命令執(zhí)行模塊發(fā)送包括該請求報(bào)文的執(zhí)行命令。
在本實(shí)施例中,腳本執(zhí)行模塊11可以執(zhí)行預(yù)先開發(fā)的腳本,該腳本為測試人員在開發(fā)北向接口測試裝置后,針對北向接口的自動化測試編寫的腳本語音,用于對北向接口進(jìn)行自動化測試,該腳本中通常包括多個(gè)腳本用例,腳本執(zhí)行模塊11在執(zhí)行腳本用例時(shí),可以根據(jù)具體的腳本用例從請求報(bào)文集合中調(diào)用相應(yīng)地請求報(bào)文,即本實(shí)施例中的腳本和請求報(bào)文的文本都是在進(jìn) 行自動化測試前已經(jīng)開發(fā)好的,通常地,可以通過腳本用例編輯測試邏輯,即特定的腳本用例可以調(diào)用特定的請求報(bào)文,即腳本用例和請求報(bào)文為對應(yīng)的關(guān)系,通過對某個(gè)腳本用例的執(zhí)行調(diào)用出相應(yīng)地請求報(bào)文,從而向命令執(zhí)行模塊12發(fā)送包括該請求報(bào)文的執(zhí)行命令,具體由命令執(zhí)行模塊12對該調(diào)用的請求報(bào)文進(jìn)行處理。
需要說明的是,本實(shí)施例中的腳本執(zhí)行模塊11在執(zhí)行腳本用例時(shí),例如可以按照預(yù)先開發(fā)的腳本中各腳本用例的順序依次執(zhí)行各腳本用例;腳本執(zhí)行模塊11調(diào)用請求報(bào)文的具體方式為:根據(jù)當(dāng)前執(zhí)行的腳本用例的內(nèi)容進(jìn)行調(diào)用的,即每次執(zhí)行一個(gè)腳本用例時(shí),調(diào)用到的請求報(bào)文通常是不同的;另外,調(diào)用到的請求報(bào)文為文本格式,例如可以為以可擴(kuò)展標(biāo)記語言(Extensible Markup Language,簡稱為:XML)格式存儲的文本。
命令執(zhí)行模塊12,用于根據(jù)請求報(bào)文的內(nèi)容執(zhí)行相應(yīng)的測試操作,并將執(zhí)行結(jié)果返回給腳本執(zhí)行模塊11,該請求報(bào)文用于對當(dāng)前測試的北向接口對應(yīng)的通訊接口進(jìn)行測試。
本實(shí)施例中,在命令執(zhí)行模塊12接收到腳本執(zhí)行模塊11向其發(fā)送的執(zhí)行命令后,可以根據(jù)該執(zhí)行命令中指示執(zhí)行請求報(bào)文執(zhí)行相應(yīng)地測試操作,請求報(bào)文用于對當(dāng)前測試的北向接口對應(yīng)的通訊接口的能力進(jìn)行測試。在具體實(shí)現(xiàn)中,由于測試人員在客戶端已經(jīng)開發(fā)的用于對測試北向接口業(yè)務(wù)接口的功能進(jìn)行測試的腳本和請求報(bào)文集合,實(shí)際上是基于圖1所示應(yīng)用場景中北向接口業(yè)務(wù)接口將輸入轉(zhuǎn)換后調(diào)用對應(yīng)的通訊接口,具體對轉(zhuǎn)換后調(diào)用的通訊接口進(jìn)行測試,即本實(shí)施例中將對北向接口的最上層的接口簇的測試轉(zhuǎn)化為對下層通訊接口的測試,具體通過預(yù)定義的腳本和請求報(bào)文集合共同實(shí)現(xiàn),即執(zhí)行腳本用例就是通過該腳本用例獲取針對當(dāng)前腳本用例的請求報(bào)文,在請求報(bào)文中具體定義了測試方案,命令執(zhí)行模塊12執(zhí)行請求報(bào)文就是說對當(dāng)前腳本用例所指示測試的功能執(zhí)行測試。
需要說明的是,本實(shí)施例中的腳本執(zhí)行模塊11執(zhí)行腳本用例的過程,實(shí)際上就是通過反復(fù)調(diào)用命令執(zhí)行模塊12,以執(zhí)行腳本執(zhí)行模塊11通過腳本用例調(diào)用到的請求報(bào)文;并且由于腳本執(zhí)行模塊11是按照腳本中各腳本用例中的順序依次執(zhí)行的,因此,命令執(zhí)行模塊12執(zhí)行請求報(bào)文的順序同樣是按 照腳本執(zhí)行模塊11調(diào)用到請求報(bào)文的順序依次執(zhí)行的。
采用本實(shí)施例提供的北向接口測試裝置對待測北向接口業(yè)務(wù)接口的功能進(jìn)行測試,實(shí)際上是轉(zhuǎn)換后對應(yīng)的通訊接口進(jìn)行自動化測試,需要通過腳本執(zhí)行模塊11先執(zhí)行預(yù)先開發(fā)的腳本用例,通過對腳本用例的執(zhí)行調(diào)用到與測試相關(guān)的請求報(bào)文,即測試通訊接口的兩個(gè)因素即是腳本用例和請求報(bào)文。如圖3所示,為圖2所示實(shí)施例提供的北向接口測試裝置的測試原理圖,與圖1所述應(yīng)用場景類似地,無填充的方塊代表服務(wù)器端,具有填充的方塊代表客戶端,北向接口測試裝置通過執(zhí)行腳本用例和調(diào)用與當(dāng)前腳本用例對應(yīng)的請求報(bào)文對客戶端的北向接口業(yè)務(wù)接口對應(yīng)的通訊接口進(jìn)行測試,也就是通過客戶端對服務(wù)器端對應(yīng)通訊接口進(jìn)行測試,從而根據(jù)測試的結(jié)果,即命令執(zhí)行模塊12執(zhí)行請求報(bào)文的執(zhí)行結(jié)果驗(yàn)證客戶端和服務(wù)器端北向接口業(yè)務(wù)接口的功能。
本實(shí)施例將對北向接口業(yè)務(wù)接口實(shí)現(xiàn)功能的自動化測試,建立在對應(yīng)的通訊接口上,由于通訊接口可以識別的輸入通常是文本或者文本編碼的二進(jìn)制流,例如對于CORBA接口來說,是基于互聯(lián)網(wǎng)內(nèi)部對象請求代理協(xié)議(Internet Inter-ORB Protocol,簡稱為:IIOP)的CORBA動態(tài)調(diào)用接口,對于MTOSI和SDN來說,是超文本傳輸協(xié)議(HyperText Transfer Protocol,簡稱為:HTTP);測試方案都是將IDL或者WSDL的請求報(bào)文先保存下來,如圖3中的北向接口請求報(bào)文,從而通過腳本來編輯測試邏輯,即測試人員將測試順序以腳本用例的形式編寫在腳本中,已完成多項(xiàng)功能的用例測試,如圖3的北向接口自動化測試腳本。顯然地,本實(shí)施例提供的北向接口測試裝置在執(zhí)行測試的過程中與具體的北向接口業(yè)務(wù)接口定義無關(guān),只負(fù)責(zé)執(zhí)行試腳本用例即可實(shí)現(xiàn)對北向接口業(yè)務(wù)接口的自動化測。
本實(shí)施例提供的北向接口測試裝置,通過腳本執(zhí)行模塊執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例,并根據(jù)該腳本用例調(diào)用相應(yīng)地請求報(bào)文,從而向命令執(zhí)行模塊發(fā)送包括該請求報(bào)文的執(zhí)行命令,進(jìn)而通過命令執(zhí)行模塊根據(jù)該請求報(bào)文的內(nèi)容執(zhí)行相應(yīng)的測試操作,并將執(zhí)行結(jié)果返回給腳本執(zhí)行模塊,本實(shí)施例中的請求報(bào)文用于對當(dāng)前測試的北向接口對應(yīng)的通訊接口進(jìn)行測試,即本實(shí)施例通過腳本執(zhí)行模塊對腳本用例的測試邏輯,調(diào)用對北向接口執(zhí)行相 應(yīng)測試功能的請求文本,從而通過調(diào)用命令執(zhí)行模塊執(zhí)行上述調(diào)用的請求文本以實(shí)現(xiàn)腳本用例中編輯的對北向接口進(jìn)行測試的任務(wù);本實(shí)施例解決了采用現(xiàn)有技術(shù)中的測試工具測試北向接口時(shí),由于需要通過對北向接口的業(yè)務(wù)接口進(jìn)行硬編碼才能對業(yè)務(wù)接口的實(shí)現(xiàn)固定功能進(jìn)行測試,而導(dǎo)致北向接口的自動化測試能力限制較大的問題。
相比于現(xiàn)有技術(shù)中的測試工具通過硬編碼的方式實(shí)現(xiàn)對北向接口業(yè)務(wù)接口的固定功能進(jìn)行測試的方案來說,本實(shí)施例提供的北向接口測試裝置將北向接口業(yè)務(wù)接口與北向接口測試裝置解耦,即自動化測試建立在待測試的北向接口業(yè)務(wù)接口對應(yīng)的通訊接口上,使得自動化測試開發(fā)變?yōu)檎埱髨?bào)文和腳本用例的開發(fā),該請求報(bào)文為通訊接口可以識別的文本輸入,降低了自動化用例開發(fā)的門檻,在測試通訊接口前測試人員可以在根據(jù)測試需求進(jìn)行研發(fā),開發(fā)出用于測試的腳本用例;并且如果腳本用例通過測試,則說明與該通訊接口對應(yīng)的北向接口業(yè)務(wù)接口的功能驗(yàn)證通過。本實(shí)施例提供的北向接口測試裝置在開發(fā)自動化測試用例時(shí)具有快速靈活的特點(diǎn),能成倍的提高開發(fā)測試的效率,從而提高產(chǎn)品質(zhì)量,特別適合于敏捷開發(fā)。
可選地,圖4為本發(fā)明實(shí)施例提供的另一種北向接口測試裝置的結(jié)構(gòu)示意圖。在本實(shí)施例中,腳本執(zhí)行模塊當(dāng)前執(zhí)行的腳本用例中包括測試通知的任務(wù),則在圖2所示北向接口測試裝置的基礎(chǔ)上,本實(shí)施例提供的裝置還包括通知接收模塊13,具體地,腳本執(zhí)行模塊11,還用于在執(zhí)行腳本用例之后,向通知接收模塊13發(fā)送第一訂閱命令;相應(yīng)地,通知接收模塊13,用于獲取該第一訂閱命令指示的測試通知,并將獲取的測試通知返回給腳本執(zhí)行模塊11;隨后,腳本執(zhí)行模塊11在獲得腳本用例中指示需要的測試通知后,即完成測試通知的任務(wù)后,可以進(jìn)一步向通知接收模塊13發(fā)送取消訂閱命,以取消測試通知的任務(wù)。
需要說明的是,本實(shí)施例中的通知接收模塊13在啟動后可以一直接收服務(wù)器端發(fā)送的通知,當(dāng)腳本執(zhí)行模塊11向其訂閱通知時(shí),該通知接收模塊13具體根據(jù)第一訂閱命令中需要測試通知的內(nèi)容,從服務(wù)器端接收的通知中找到上述腳本執(zhí)行模塊11訂閱的通知,并返回給腳本執(zhí)行模塊11;即本實(shí)施例中的訂閱通知的操作具體為北向接口測試裝置的內(nèi)部模塊之間的通知訂 閱。另外,本實(shí)施例中的腳本執(zhí)行模塊11執(zhí)行腳本用例的過程,不僅需要通過反復(fù)調(diào)用命令執(zhí)行模塊12來執(zhí)行腳本執(zhí)行模塊11調(diào)用到的請求報(bào)文,還需要通過反復(fù)調(diào)用通知接收模塊13來訂閱腳本執(zhí)行模塊11當(dāng)前執(zhí)行的腳本用例中需要測試的通知。
進(jìn)一步地,圖4所示的北向接口測試裝置還可以包括:初始化模塊14和腳本加載模塊15,具體地,初始化模塊14,用于在腳本執(zhí)行模塊執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例之前,初始化腳本加載模塊15加載該預(yù)先開發(fā)的腳本,同時(shí)初始化命令執(zhí)行模塊12的參數(shù)和通知接收模塊13的參數(shù),其中,腳本執(zhí)行模塊11執(zhí)行的腳本用例就是根據(jù)腳本加載模塊15加載該腳本中的各腳本用例所獲取的,該腳本包括腳本用例和腳本方法,該腳本方法為腳本用例的執(zhí)行方法;相應(yīng)地,通知接收模塊13,還用于在初始化后持續(xù)接收服務(wù)器發(fā)送的通知。需要說明的是,本實(shí)施例不限制初始化模塊14初始化腳本加載模塊15、命令執(zhí)行模塊12和通知接收模塊13的順序,可以是依次執(zhí)行的,也可以是并行執(zhí)行的。
在本實(shí)施例中,腳本加載模塊15所加載的腳本例如為基于面向?qū)ο蟮某绦蛟O(shè)計(jì)語言Java虛擬機(jī)的編程語言(Groovy)編程的腳本,即Groovy腳本,由于Groovy語言是對Java語言的擴(kuò)展,因此開發(fā)Groovy腳本的工作量較?。徊⑶夷_本加載模塊15加載的Groovy腳本分為兩部分內(nèi)容,一部分是Groovy腳本方法,一部分是Groovy腳本用例,其中,Groovy腳本方法可以是一些常用的或者被各Groovy腳本用例公用的方法,例如為用于初始化模塊14的登陸的Groovy腳本方法。
在通過本發(fā)明實(shí)施例提供的裝置測試北向接口的一種應(yīng)用場景中,如圖5所示,為本發(fā)明實(shí)施例提供的又一種北向接口測試裝置的結(jié)構(gòu)示意圖。本實(shí)施例可以用于測試CORBA接口,則腳本執(zhí)行模塊11通過執(zhí)行腳本用例調(diào)用到的請求報(bào)文具體為CORBA請求報(bào)文,該CORBA請求報(bào)文同樣為XML格式的文本文件。本實(shí)施例在具體實(shí)現(xiàn)中,一方面,初始化模塊14用于初始化命令執(zhí)行模塊12的參數(shù),具體包括:根據(jù)服務(wù)器的網(wǎng)絡(luò)協(xié)議(Internet Protocol,簡稱為:IP)和命名服務(wù)端口,初始化對象請求代理(Object Request Broker,簡稱為:ORB);另一方面,初始化模塊14用于初始化通知接收模 塊13的參數(shù),具體包括:根據(jù)服務(wù)器通知的服務(wù)端口,通過對象管理組織(Object Management Group,簡稱為:OMG)標(biāo)準(zhǔn),指示通知接收模塊13持續(xù)接收服務(wù)器發(fā)送的通知。
本實(shí)施例在具體實(shí)現(xiàn)中,命令執(zhí)行模塊12具體可以為CORBA命令執(zhí)行模塊12,通知接收模塊13具體可以為OMG通知接收模塊13,該OMG通知接收模塊13在初始化之后,一直處于接收OMG通知的狀態(tài),可以提供訂閱和取消訂閱的接口,例如,在腳本執(zhí)行模塊11執(zhí)行腳本用例時(shí),如遇到要測試某個(gè)通知的情況,就向通知接收模塊13發(fā)送第一訂閱命以訂閱需要通知時(shí),此時(shí),通知接收模塊13在從服務(wù)器接收到的通知中找到第一訂閱命指示的訂閱的測試通知,從而向腳本執(zhí)行模塊11返回其所需的測試通知,完成測試通知的任務(wù)后則可以取消通知訂閱。
需要說明的是,本實(shí)施例同樣以腳本加載模塊15加載的腳本具體為Groovy腳本為例予以說明,該Groovy腳本包括Groovy腳本方法和Groovy腳本用例,對于CORBA接口,都需要遵循814標(biāo)準(zhǔn)中的定義,定義了使用EmsSessionFactory來獲得getEmsSession的登陸方法;具體地,在執(zhí)行每個(gè)Groovy腳本用例前,都需要先進(jìn)行登錄操作,與待執(zhí)行的Groovy腳本用例對應(yīng)的Groovy腳本方法即是初始化模塊14指示執(zhí)行的登錄的Groovy腳本方法。本實(shí)施例提供的裝置在具體實(shí)現(xiàn)中,初始化模塊14,還用于在腳本執(zhí)行模塊11執(zhí)行腳本用例之前,向腳本執(zhí)行模塊11發(fā)送登陸命令,該登陸命令中包括登陸的腳本方法,例如為登錄的Groovy腳本方法;腳本執(zhí)行模塊11,還用于根據(jù)登陸命令執(zhí)行該登陸的Groovy腳本方法,并根據(jù)該登陸的Groovy腳本方法調(diào)用相應(yīng)地登陸請求報(bào)文,例如為登陸的CORBA請求報(bào)文,該登陸的CORBA請求報(bào)文同樣為以XML格式存儲的文本文件,從而向命令執(zhí)行模塊12發(fā)送包括該登陸的CORBA請求報(bào)文的執(zhí)行登陸命令;相應(yīng)地,命令執(zhí)行模塊12,還用于根據(jù)接收到的登陸的CORBA請求報(bào)文執(zhí)行CORBA的動態(tài)調(diào)用,執(zhí)行完成后將執(zhí)行結(jié)果返回給腳本執(zhí)行模塊11。
需要說明的是,圖5所示實(shí)施例與圖4所示實(shí)施例的不同在于,由于本實(shí)施例對CORBA接口的測試需要遵循814標(biāo)準(zhǔn)中的定義,即腳本執(zhí)行模塊11執(zhí)行腳本用例前,需要先進(jìn)行登錄操作,該操作中需要初始化模塊14向 腳本執(zhí)行模塊11發(fā)送登陸命令,因此,圖5所示實(shí)施例中初始化模塊14與腳本執(zhí)行模塊11具有發(fā)送信令的連接關(guān)系。另外,本發(fā)明各實(shí)施例中的請求報(bào)文可以全部以XML格式的文本文件存儲,命令執(zhí)行模塊12接收到執(zhí)行登陸命令后,讀取該命令中的登陸的CORBA請求報(bào)文,讀取完成后通過ORB調(diào)用CORBA的動態(tài)調(diào)用接口,調(diào)用完成后將執(zhí)行結(jié)果重新保存為XML格式的文本文件,以供腳本執(zhí)行模塊11進(jìn)行后續(xù)使用。再者,本實(shí)施例中的腳本執(zhí)行模塊11可以采用單元測試用例框架執(zhí)行腳本加載模塊15加載的腳本用例。
在通過本發(fā)明實(shí)施例提供的裝置測試北向接口的另一種應(yīng)用場景中,可以參考圖4所示的北向接口測試裝置的結(jié)構(gòu)示意圖。本實(shí)施例提供的北向接口測試裝置可以用于測試MTOSI接口或者SDN的北向,則腳本執(zhí)行模塊11通過執(zhí)行腳本用例調(diào)用到的請求報(bào)文具體為HTTP請求報(bào)文,該HTTP請求報(bào)文同樣可以為XML格式的文本文件。本實(shí)施例在具體實(shí)現(xiàn)中,一方面,初始化模塊14用于初始化命令執(zhí)行模塊12的參數(shù),具體包括:初始化服務(wù)器的統(tǒng)一資源定位符(Uniform Resource Locator,簡稱為:URL)參數(shù),也就是初始化用于構(gòu)造HTTP請求報(bào)文的統(tǒng)一資源定位符URL,由于本實(shí)施例中腳本執(zhí)行模塊11執(zhí)行腳本用例時(shí)具體調(diào)用HTTP請求報(bào)文,HTTP請求報(bào)文需要包括URL,該HTTP請求報(bào)文例如可以為簡單對象訪問協(xié)議(Simple Object Access Protocol,簡稱為:SOAP)請求報(bào)文,該SOAP請求報(bào)文可以是HTTP請求報(bào)文具體應(yīng)用;另一方面,初始化模塊14用于初始化通知接收模塊13的參數(shù),具體包括:訂閱MTOSI通知,從而指示通知接收模塊13持續(xù)接收服務(wù)器發(fā)送的通知。本實(shí)施例在具體實(shí)現(xiàn)中,命令執(zhí)行模塊12例如可以為HTTP請求執(zhí)行模塊,通知接收模塊13例如可以為Jetty(基于Java的網(wǎng)絡(luò)容器)通知接收模塊,該Jetty通知接收模塊在初始化之后,一直處于接收MTOSI通知的狀態(tài),可以提供訂閱和取消訂閱的接口,腳本執(zhí)行模塊11向Jetty通知接收模塊訂閱通知和取消通知訂閱的方式與上述實(shí)施例相同,句屬于北向接口測試裝置的內(nèi)部模塊之間的通知訂閱。
需要說明的是,本實(shí)施例同樣以腳本加載模塊15加載的腳本具體為Groovy腳本為例予以說明,該Groovy腳本包括Groovy腳本方法和Groovy 腳本用例,在初始化模塊14初始化Jetty通知接收模塊的參數(shù)后,即訂閱MTOSI通知后,需要通過調(diào)用訂閱的Groovy腳本方法向服務(wù)器發(fā)送訂閱通知,具體實(shí)現(xiàn)方式為:通知接收模塊13,還用于向腳本執(zhí)行模塊11發(fā)送第二訂閱命令,該第二訂閱命令中包括訂閱的腳本方法,例如為訂閱的Groovy腳本方法;腳本執(zhí)行模塊11,還用于根據(jù)第二訂閱命令執(zhí)行該訂閱的Groovy腳本方法,并根據(jù)該訂閱的Groovy腳本方法調(diào)用相應(yīng)地訂閱請求報(bào)文,例如為訂閱的SOAP請求報(bào)文,該訂閱的SOAP請求報(bào)文同樣為以XML格式存儲的文本文件,從而向命令執(zhí)行模塊12發(fā)送包括該訂閱的SOAP請求報(bào)文的執(zhí)行訂閱命令;相應(yīng)地,命令執(zhí)行模塊12,還用于根據(jù)訂閱的SOAP請求報(bào)文執(zhí)行HTTP請求調(diào)用,執(zhí)行完成后將執(zhí)行結(jié)果返回給腳本執(zhí)行模塊11。
需要說明的是,上述實(shí)施例中,無論是測試CORBA接口時(shí)初始化通知接收模塊13,還是測試MTOSI接口或者SDN的北向時(shí)初始化通知接收模塊13,目的都是需要接收服務(wù)器端的通知,該訂閱通知的操作具體為北向接口測試裝置與服務(wù)器之間的通知訂閱。
更進(jìn)一步地,圖4和圖5所示實(shí)施例中的北向接口測試裝置還可以包括結(jié)果生成模塊16,則腳本執(zhí)行模塊11,還用于在命令執(zhí)行模塊12將執(zhí)行結(jié)果返回給腳本執(zhí)行模塊11之后,將該執(zhí)行結(jié)果傳輸給結(jié)果生成模塊16;相應(yīng)地,結(jié)果生成模塊16,用于輸出執(zhí)行結(jié)果,該執(zhí)行結(jié)果包括已測試的所有北向接口,以及每個(gè)北向接口的測試次數(shù)和測試時(shí)間。另外,圖4和圖5所示實(shí)施例中的北向接口測試裝置還可以包括記錄模塊17,則腳本執(zhí)行模塊11,還用于在執(zhí)行腳本用例的過程中,將腳本用例的執(zhí)行信息和異常信息發(fā)送給記錄模塊17;相應(yīng)地,記錄模塊17,用于記錄并展示腳本用例的執(zhí)行信息和異常信息。
在具體實(shí)現(xiàn)中,腳本執(zhí)行模塊11執(zhí)行完腳本用例后,可以通過結(jié)果生成模塊16將測試結(jié)果以Web網(wǎng)頁、文本或Excel等方式輸出,以供測試人員查看執(zhí)行結(jié)果,該執(zhí)行結(jié)果中可以體現(xiàn)出每個(gè)腳本用例的執(zhí)行情況,具體包括測試了哪些北向接口,以及測試的每個(gè)北向接口的測試次數(shù)和測試時(shí)間。另外,當(dāng)腳本用例執(zhí)行失敗時(shí),可以通過記錄模塊17所記錄的信息查看相關(guān)異常運(yùn)行狀態(tài)。
本發(fā)明提供的各北向接口測試裝置,具體從北向接口的特性出發(fā),以北向接口協(xié)議的底層協(xié)議,即通訊接口為基礎(chǔ)進(jìn)行自動化用例測試,從而在腳本開發(fā)完成后,只需要進(jìn)行請求報(bào)文編寫和腳本用例編寫,就可快速完成舊的腳本用例的變更,以及新的腳本用例開發(fā),能與敏捷開發(fā)模式緊密結(jié)合,成倍的提高開發(fā)測試效率,有利于集成到持續(xù)集成系統(tǒng)中。另外,通過本發(fā)明實(shí)施例提供的北向接口測試裝置,可以提供穩(wěn)定的北向接口,同時(shí)適用于各種應(yīng)用場景中腳本用例的自動化測試開發(fā),可以相應(yīng)地降低維護(hù)該北向接口測試裝置所需的人力成本。
圖6為本發(fā)明實(shí)施例提供的一種北向接口的測試方法的流程圖。本實(shí)施例提供的方法適用于對北向接口的業(yè)務(wù)接口進(jìn)行測試的情況中,該方法可以由北向接口測試裝置執(zhí)行,該北向接口測試裝置通常以硬件和軟件的方式實(shí)現(xiàn),例如集成在測試設(shè)備的處理器中,供處理器調(diào)用執(zhí)行。如圖6所示,本實(shí)施例提供的方法具體包括以下步驟:
S110,腳本執(zhí)行模塊執(zhí)行預(yù)先開發(fā)的腳本中的腳本用例,并根據(jù)腳本用例調(diào)用相應(yīng)地請求報(bào)文。
S120,腳本執(zhí)行模塊向命令執(zhí)行模塊發(fā)送包括請求報(bào)文的執(zhí)行命令。
S130,命令執(zhí)行模塊根據(jù)請求報(bào)文的內(nèi)容執(zhí)行相應(yīng)的測試操作。
S140,命令執(zhí)行模塊將執(zhí)行結(jié)果返回給所述腳本執(zhí)行模塊,該請求報(bào)文用于對當(dāng)前測試的北向接口對應(yīng)的通訊接口的能力進(jìn)行測試。
本實(shí)施例中通過北向接口測試裝置對北向接口的業(yè)務(wù)接口進(jìn)行測試的應(yīng)用場景同樣可以參照上述圖1所示的應(yīng)用場景,其測試方式同樣可以參照上述圖3所示的測試原理圖,即本實(shí)施例提供的北向接口的測試方法,在測試的過程中與具體的北向接口業(yè)務(wù)接口定義無關(guān),只負(fù)責(zé)執(zhí)行自動化測試腳本用例即可。
本發(fā)明實(shí)施例提供的北向接口的測試方法可以由本發(fā)明圖2所示實(shí)施例提供的北向接口測試裝置執(zhí)行,該方法的各步驟與本發(fā)明實(shí)施例提供的北向接口測試裝置中的各裝置的功能對應(yīng),其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
可選地,在上述圖6所示實(shí)施例的基礎(chǔ)上,若腳本執(zhí)行模塊當(dāng)前執(zhí)行的腳本用例中包括測試通知的任務(wù),則本實(shí)施例提供的方法在S110之后,還包括:S111,腳本執(zhí)行模塊向通知接收模塊發(fā)送第一訂閱命令;S112,通知接收模塊獲取第一訂閱命令指示的測試通知;S113,通知接收模塊將獲取的測試通知返回給腳本執(zhí)行模塊,本實(shí)施例中獲取的測試通知具體為從服務(wù)器端接收到的通知;S114,腳本執(zhí)行模塊向通知接收模塊發(fā)送取消訂閱命令。
需要說明的是,本實(shí)施例不限制S111~S114與S120~S140的執(zhí)行順序,圖6以S111~S114在S120~S140之前執(zhí)行為例予以示出。
進(jìn)一步地,本實(shí)施例提供的方法,在S110之前還包括:S101,初始化模塊初始化腳本加載模塊;S102,腳本加載模塊加載預(yù)先開發(fā)的腳本中的腳本用例,具體地,腳本執(zhí)行模塊執(zhí)行的腳本用例就是根據(jù)該腳本加載模塊加載腳本中的各腳本用例所獲取的,該腳本包括腳本用例和腳本方法,該腳本方法為腳本用例的執(zhí)行方法;類似地,還包括S103,初始化模塊初始化命令執(zhí)行模塊的參數(shù);S104,初始化模塊初始化通知接收模塊的參數(shù)。需要說明的是,本實(shí)施例不限制初始化模塊執(zhí)行S101~S102與執(zhí)行S103或S104的順序,圖6以S101~S104為順序的執(zhí)行方式為例予以示出。
在本發(fā)明實(shí)施例提供的北向接口的測試方法的一種具體應(yīng)用中,如圖7所示,為本發(fā)明實(shí)施例提供的另一種北向接口的測試方法的流程圖。本實(shí)施例具體用于測試CORBA接口,則S110中腳本執(zhí)行模塊通過執(zhí)行腳本用例調(diào)用到的請求報(bào)文具體為CORBA請求報(bào)文。則在上述圖6所示實(shí)施例的基礎(chǔ)上,S103可以替換為:根據(jù)服務(wù)器的IP和命名服務(wù)端口,初始化ORB;S104可以替換為:根據(jù)服務(wù)器通知的服務(wù)端口,通過OMG標(biāo)準(zhǔn),指示通知接收模塊調(diào)用接收服務(wù)器發(fā)送的通知,即訂閱OMG通知,本實(shí)施例中的通知接收模塊在初始化之后,一直處于接收OMG通知的狀態(tài),具體實(shí)現(xiàn)方式與上述實(shí)施例相同,故在此不再贅述。
需要說明的是,本實(shí)施例同樣以腳本加載模塊加載的腳本具體為Groovy腳本為例予以說明,該Groovy腳本包括Groovy腳本方法和Groovy腳本用例,本實(shí)施例具體對CORBA接口進(jìn)行測試,即在執(zhí)行每個(gè)Groovy腳本用例前,都需要先進(jìn)行登錄操作,具體地,本實(shí)施例提供的方法在S110之前還 包括:S105,初始化模塊向腳本執(zhí)行模塊發(fā)送登陸命令,該登陸命令中包括登陸的Groovy腳本方法;S106,腳本執(zhí)行模塊根據(jù)登陸命令執(zhí)行登陸的Groovy腳本方法,并根據(jù)登陸的Groovy腳本方法調(diào)用相應(yīng)地登陸的CORBA請求報(bào)文,S107,腳本執(zhí)行模塊向命令執(zhí)行模塊發(fā)送包括登陸的CORBA請求報(bào)文的執(zhí)行登陸命令;S108,命令執(zhí)行模塊根據(jù)接收到的登陸的CORBA請求報(bào)文執(zhí)行CORBA的動態(tài)調(diào)用;S109,命令執(zhí)行模塊將執(zhí)行結(jié)果返回給腳本執(zhí)行模塊。
本發(fā)明實(shí)施例提供的北向接口的測試方法可以由本發(fā)明圖4所示實(shí)施例提供的北向接口測試裝置執(zhí)行,該方法的各步驟與本發(fā)明實(shí)施例提供的北向接口測試裝置中的各裝置的功能對應(yīng),其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
類似地,在本發(fā)明實(shí)施例提供的北向接口的測試方法的另一種具體應(yīng)用中,如圖8所示,為本發(fā)明實(shí)施例提供的又一種北向接口的測試方法的流程圖。本實(shí)施例具體用于測試MTOSI接口或者SDN的北向,則S110中腳本執(zhí)行模塊通過執(zhí)行腳本用例調(diào)用到的請求報(bào)文具體為HTTP請求報(bào)文。則在上述圖6所示實(shí)施例的基礎(chǔ)上,S103可以替換為:初始化用于構(gòu)造HTTP請求報(bào)文的URL;S104可以替換為:訂閱MTOSI通知,從而指示通知接收模塊持續(xù)接收服務(wù)器發(fā)送的通知。
需要說明的是,本實(shí)施例同樣以腳本加載模塊加載的腳本具體為Groovy腳本為例予以說明,該Groovy腳本包括Groovy腳本方法和Groovy腳本用例,在初始化模塊初始化通知接收模塊訂閱MTOSI通知后,通知接收模塊需要調(diào)用訂閱的腳本方法,具體地,本實(shí)施例提供的方法在S104之后還包括:S105,通知接收模塊向腳本執(zhí)行模塊發(fā)送第二訂閱命令,該第二訂閱命令中包括訂閱的Groovy腳本方法;S106,腳本執(zhí)行模塊根據(jù)第二訂閱命令執(zhí)行訂閱的Groovy腳本方法,并根據(jù)該訂閱的Groovy腳本方法調(diào)用相應(yīng)地訂閱的SOAP請求報(bào)文,S107,腳本執(zhí)行模塊向命令執(zhí)行模塊發(fā)送包括訂閱的SOAP請求報(bào)文的執(zhí)行訂閱命令;S108,命令執(zhí)行模塊根據(jù)訂閱的SOAP請求報(bào)文執(zhí)行HTTP請求調(diào)用;S109,命令執(zhí)行模塊將執(zhí)行結(jié)果返回給腳本執(zhí)行模塊。
本發(fā)明實(shí)施例提供的北向接口的測試方法可以由本發(fā)明圖5所示實(shí)施例提供的北向接口測試裝置執(zhí)行,該方法的各步驟與本發(fā)明實(shí)施例提供的北向接口測試裝置中的各裝置的功能對應(yīng),其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
更進(jìn)一步地,在上述各實(shí)施例提供的北向接口的測試方法的基礎(chǔ)上,在S140和S109之后,均可以執(zhí)行S150,腳本執(zhí)行模塊將執(zhí)行結(jié)果傳輸給結(jié)果生成模塊;S160,結(jié)果生成模塊輸出執(zhí)行結(jié)果,該執(zhí)行結(jié)果包括已測試的所有北向接口,以及每個(gè)北向接口的測試次數(shù)和測試時(shí)間。另外,在上述各實(shí)施例的基礎(chǔ)上,腳本執(zhí)行模塊在執(zhí)行腳本用例的過程中,還包括:腳本執(zhí)行模塊將腳本用例的執(zhí)行信息和異常信息發(fā)送給記錄模塊;隨后,記錄模塊記錄并展示腳本用例的執(zhí)行信息和異常信息。
雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。