日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

應(yīng)用接口測(cè)試方法及裝置與流程

文檔序號(hào):11154826閱讀:817來(lái)源:國(guó)知局
應(yīng)用接口測(cè)試方法及裝置與制造工藝

本申請(qǐng)涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用接口測(cè)試方法及系統(tǒng)。



背景技術(shù):

遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call,RPC)協(xié)議是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。RPC框架通常采用客戶端或服務(wù)器模式,請(qǐng)求程序就是一個(gè)客戶端,而服務(wù)提供程序就是一個(gè)服務(wù)器??蛻舳伺c服務(wù)器之間是基于應(yīng)用接口實(shí)現(xiàn)通信的,因此,為了確保客戶端與服務(wù)器之間的正常通信,必須要對(duì)RPC框架中的各個(gè)應(yīng)用接口進(jìn)行測(cè)試。

按照相關(guān)的應(yīng)用接口測(cè)試方法,需要技術(shù)人員編寫(xiě)專門(mén)的代碼,然后服務(wù)器運(yùn)行該代碼來(lái)測(cè)試各個(gè)應(yīng)用接口是否正常。由于需要技術(shù)人員編寫(xiě)專門(mén)的代碼,不僅工作量巨大而且測(cè)試效率較低。



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

本申請(qǐng)實(shí)施例提供一種應(yīng)用接口測(cè)試方法及裝置,用以解決相關(guān)技術(shù)中存在的工作量巨大且測(cè)試效率較低的問(wèn)題。

根據(jù)本申請(qǐng)實(shí)施例,提供一種應(yīng)用接口測(cè)試方法,包括:

確定待測(cè)試應(yīng)用接口及其包括的方法;

遞歸解析每個(gè)方法的每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;以及,遞歸解析每個(gè)方法的原始出口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;

根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常;

確定所述待測(cè)試應(yīng)用接口包括的每個(gè)方法是否都正常;

若所述待測(cè)試應(yīng)用接口包括的每個(gè)方法都正常,則確定所述待測(cè)試應(yīng)用接口正常。

具體的,確定待測(cè)試應(yīng)用接口及其包括的方法,具體包括:

解析出所有的備選應(yīng)用接口及其包括的方法并顯示;

接收用戶選擇的備選應(yīng)用接口,得到待測(cè)試應(yīng)用接口;

獲取所述待測(cè)試應(yīng)用接口包括的方法。

具體的,遞歸解析每個(gè)方法的每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,具體包括:

針對(duì)所述待測(cè)試應(yīng)用接口包括的每個(gè)方法的每個(gè)原始入口參數(shù)執(zhí)行:

獲取當(dāng)前方法的當(dāng)前原始入口參數(shù);

采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型識(shí)別器逐層解析所述當(dāng)前原始入口參數(shù),直到解析出所述當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型;

記錄解析出的所述當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系,得到所述當(dāng)前原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;

遞歸解析每個(gè)方法的原始出口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,具體包括:

針對(duì)所述待測(cè)試應(yīng)用接口包括的每個(gè)方法的原始出口參數(shù)執(zhí)行:

獲取當(dāng)前方法的原始出口參數(shù);

采用所述至少兩個(gè)參數(shù)類型識(shí)別器逐層解析所述原始出口參數(shù),直到解析出所述原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型;

記錄解析出的所述原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系,得到所述原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。

具體的,根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常,具體包括:

針對(duì)所述待測(cè)試應(yīng)用接口包括的每個(gè)方法執(zhí)行:

獲取所述當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,根據(jù)所述當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成所述當(dāng)前方法的每個(gè)調(diào)用入口參數(shù);以及,

獲取所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,根據(jù)所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值生成所述當(dāng)前方法的調(diào)用出口參數(shù);

根據(jù)所述當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)調(diào)用所述當(dāng)前方法,得到所述當(dāng)前方法的計(jì)算 出口參數(shù);

確定所述當(dāng)前方法的計(jì)算出口參數(shù)與所述當(dāng)前方法的調(diào)用出口參數(shù)是否一致;

若所述當(dāng)前方法的計(jì)算出口參數(shù)與所述當(dāng)前方法的調(diào)用出口參數(shù)一致,則確定所述當(dāng)前方法正常。

具體的,根據(jù)所述當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成所述當(dāng)前方法的每個(gè)調(diào)用入口參數(shù),具體包括:

構(gòu)建所述當(dāng)前方法的調(diào)用工程;

基于所述當(dāng)前方法的調(diào)用工程將所述當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入所述當(dāng)前方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;

采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型生成器分別生成所述當(dāng)前方法的每個(gè)調(diào)用入口參數(shù);

根據(jù)所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值生成所述當(dāng)前方法的調(diào)用出口參數(shù),具體包括:

基于所述當(dāng)前方法的調(diào)用工程將所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;

采用所述至少兩個(gè)參數(shù)類型生成器生成所述當(dāng)前方法的調(diào)用出口參數(shù)。

可選的,還包括:

若所述待測(cè)試應(yīng)用接口包括的至少一個(gè)方法異常,則確定所述待測(cè)試接口異常。

根據(jù)本申請(qǐng)實(shí)施例,還提供一種應(yīng)用接口測(cè)試裝置,包括:

第一確定單元,用于確定待測(cè)試應(yīng)用接口及其包括的方法;

解析單元,用于遞歸解析每個(gè)方法的每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;以及,遞歸解析每個(gè)方法的原始出口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;

第二確定單元,用于根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常;

第三確定單元,用于確定所述待測(cè)試應(yīng)用接口包括的每個(gè)方法是否都正常;若所述待測(cè)試應(yīng)用接口包括的每個(gè)方法都正常,則確定所述待測(cè)試應(yīng)用接口正常。

具體的,所述第一確定單元,用于確定待測(cè)試應(yīng)用接口及其包括的方法,具體用于:

解析出所有的備選應(yīng)用接口及其包括的方法并顯示;

接收用戶選擇的備選應(yīng)用接口,得到待測(cè)試應(yīng)用接口;

獲取所述待測(cè)試應(yīng)用接口包括的方法。

具體的,所述解析單元,用于遞歸解析每個(gè)方法的每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,具體用于:

針對(duì)所述待測(cè)試應(yīng)用接口包括的每個(gè)方法的每個(gè)原始入口參數(shù)執(zhí)行:

獲取當(dāng)前方法的當(dāng)前原始入口參數(shù);

采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型識(shí)別器逐層解析所述當(dāng)前原始入口參數(shù),直到解析出所述當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型;

記錄解析出的所述當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系,得到所述當(dāng)前原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;

所述解析單元,用于遞歸解析每個(gè)方法的原始出口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,具體用于:

針對(duì)所述待測(cè)試應(yīng)用接口包括的每個(gè)方法的原始出口參數(shù)執(zhí)行:

獲取當(dāng)前方法的原始出口參數(shù);

采用所述至少兩個(gè)參數(shù)類型識(shí)別器逐層解析所述原始出口參數(shù),直到解析出所述原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型;

記錄解析出的所述原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系,得到所述原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。

具體的,所述第二確定單元,用于根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常,具體用于:

針對(duì)所述待測(cè)試應(yīng)用接口包括的每個(gè)方法執(zhí)行:

獲取所述當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,根據(jù)所述當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成所述當(dāng)前方法的每個(gè)調(diào)用入口參數(shù);以及,

獲取所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,根據(jù)所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值生成所述當(dāng)前方法的調(diào)用出口參數(shù);

根據(jù)所述當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)調(diào)用所述當(dāng)前方法,得到所述當(dāng)前方法的計(jì)算出口參數(shù);

確定所述當(dāng)前方法的計(jì)算出口參數(shù)與所述當(dāng)前方法的調(diào)用出口參數(shù)是否一致;

若所述當(dāng)前方法的計(jì)算出口參數(shù)與所述當(dāng)前方法的調(diào)用出口參數(shù)一致,則確定所述當(dāng)前方法正常。

具體的,所述第二確定單元,用于根據(jù)所述當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成所述當(dāng)前方法的每個(gè)調(diào)用入口參數(shù),具體用于:

構(gòu)建所述當(dāng)前方法的調(diào)用工程;

基于所述當(dāng)前方法的調(diào)用工程將所述當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入所述當(dāng)前方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;

采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型生成器分別生成所述當(dāng)前方法的每個(gè)調(diào)用入口參數(shù);

所述第二確定單元,用于根據(jù)所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值生成所述當(dāng)前方法的調(diào)用出口參數(shù),具體用于:

基于所述當(dāng)前方法的調(diào)用工程將所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入所述當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;

采用所述至少兩個(gè)參數(shù)類型生成器生成所述當(dāng)前方法的調(diào)用出口參數(shù)。

可選的,所述第三確定單元,還用于:

若所述待測(cè)試應(yīng)用接口包括的至少一個(gè)方法異常,則確定所述待測(cè)試接口異常。

本申請(qǐng)實(shí)施例提供一種應(yīng)用接口測(cè)試方法及裝置,確定待測(cè)試應(yīng)用接口及其包括的方法;遞歸解析每個(gè)方法的每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;以及,遞歸解析每個(gè)方法的原始出口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常;確定所述待測(cè)試應(yīng)用接口包括的每個(gè)方法是否都正常;若所述待測(cè)試應(yīng)用接口包括的每個(gè)方法都正常,則確定所述待測(cè)試應(yīng)用接口正常。該方案中,在測(cè)試待測(cè)試應(yīng)用接口是否正常時(shí),會(huì)首先得到每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,然后根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常,最終確定待測(cè)試應(yīng)用接口是否正常,整個(gè)過(guò)程中無(wú)需編寫(xiě)專門(mén)的代碼,從而大大減少了工作量,并且提高了測(cè)試效率。

附圖說(shuō)明

此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:

圖1為本申請(qǐng)實(shí)施例中一種應(yīng)用接口測(cè)試方法的流程圖;

圖2為本申請(qǐng)實(shí)施例中S11的流程圖;

圖3為本申請(qǐng)實(shí)施例中S12的流程圖;

圖4為本申請(qǐng)實(shí)施例中S13的流程圖;

圖5為本申請(qǐng)實(shí)施例中另一種應(yīng)用接口測(cè)試方法的流程圖;

圖6為本申請(qǐng)實(shí)施例中一種應(yīng)用接口測(cè)試裝置的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了使本申請(qǐng)所要解決的技術(shù)問(wèn)題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖和實(shí)施例,對(duì)本申請(qǐng)進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本申請(qǐng),并不用于限定本申請(qǐng)。

為了解決相關(guān)技術(shù)中存在的工作量巨大且測(cè)試效率較低的問(wèn)題,本申請(qǐng)實(shí)施例提供一種應(yīng)用接口測(cè)試方法,該方法的流程如圖1所示,包括如下步驟:

S11:確定待測(cè)試應(yīng)用接口及其包括的方法。

RPC框架中可能有多個(gè)需要測(cè)試的應(yīng)用接口,當(dāng)前需要測(cè)試的應(yīng)用接口為待測(cè)試應(yīng)用接口;每個(gè)應(yīng)用接口一般包括多個(gè)方法,只有當(dāng)應(yīng)用接口包括的每個(gè)方法都正常時(shí),才能確定該應(yīng)用接口是正常的,因此,還需要首先確定待測(cè)試應(yīng)用接口包括的方法。

S12:遞歸解析每個(gè)方法的每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;以及,遞歸解析每個(gè)方法的原始出口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。

待測(cè)試應(yīng)用接口包括的方法會(huì)有多個(gè)原始入口參數(shù)和一個(gè)原始出口參數(shù),原始出口參數(shù)和每個(gè)原始入口參數(shù)都是樹(shù)形結(jié)構(gòu),因此,可以采用遞歸解析的方式深度解析每個(gè)方法的原始出口參數(shù)和每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。

S13:根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常。

S14:確定待測(cè)試應(yīng)用接口包括的每個(gè)方法是否都正常,若待測(cè)試應(yīng)用接口包括的每個(gè) 方法都正常,則執(zhí)行S15;若待測(cè)試接口包括的至少一個(gè)方法異常,則執(zhí)行S16。

S15:確定待測(cè)試應(yīng)用接口正常。

S16:確定待測(cè)試應(yīng)用接口異常。

該方案中,在測(cè)試待測(cè)試應(yīng)用接口是否正常時(shí),會(huì)首先得到每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,然后根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常,最終確定待測(cè)試應(yīng)用接口是否正常,整個(gè)過(guò)程中無(wú)需編寫(xiě)專門(mén)的代碼,從而大大減少了工作量,并且提高了測(cè)試效率。

下面詳細(xì)介紹上述應(yīng)用接口測(cè)試方法中的每個(gè)步驟。

可選的,上述S11中的確定待測(cè)試應(yīng)用接口及其包括的方法的實(shí)現(xiàn)過(guò)程,如圖2所示,具體包括:

S111:解析出所有的備選應(yīng)用接口及其包括的方法并顯示。

在RPC框架中通常包括很多應(yīng)用接口,每個(gè)應(yīng)用接口包括很多方法,因此需要首先解析出RPC框架中所有的備選應(yīng)用接口及每個(gè)備選應(yīng)用接口包括的方法并顯示,以供用戶進(jìn)行選擇。

對(duì)于不同類型的備選應(yīng)用接口,解析的方式可能有所不同,下面以備選應(yīng)用接口為HSF接口為例進(jìn)行說(shuō)明:獲取接口二方庫(kù)的Maven依賴,將所有Maven依賴的類路徑(ClassPath)注入到當(dāng)前線程的類加載器(ClassLoader),得到備選應(yīng)用接口及其包括的方法并顯示。

S112:接收用戶選擇的備選應(yīng)用接口,得到待測(cè)試應(yīng)用接口。

用戶可以從顯示的所有備選應(yīng)用接口中選擇需要測(cè)試的備選應(yīng)用接口作為待測(cè)試應(yīng)用接口。

S113:獲取待測(cè)試應(yīng)用接口包括的方法。

在得到待測(cè)試應(yīng)用接口后,可以從S111的解析結(jié)果中獲取該待測(cè)試應(yīng)用接口包括的方法,從而實(shí)現(xiàn)S11中的確定待測(cè)試應(yīng)用接口及其包括的方法。

具體的,S12中的遞歸解析每個(gè)方法的每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板的實(shí)現(xiàn)過(guò)程,如圖3所示,針對(duì)待測(cè)試應(yīng)用接口包括的每個(gè)方法的每個(gè)原始入口參數(shù)執(zhí)行:

S121:獲取當(dāng)前方法的當(dāng)前原始入口參數(shù)。

由于每個(gè)應(yīng)用接口通常會(huì)包括多個(gè)方法,而每個(gè)方法會(huì)有多個(gè)原始入口參數(shù),因此需 要逐一遞歸解析待測(cè)試應(yīng)用接口包括的每個(gè)方法的每個(gè)原始入口參數(shù),當(dāng)前正在解析的方法的原始入口參數(shù)為當(dāng)前方法的當(dāng)前原始入口參數(shù)。

S122:采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型識(shí)別器逐層解析當(dāng)前原始入口參數(shù),直到解析出當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型。

待測(cè)試應(yīng)用接口的類型不同時(shí),預(yù)先設(shè)置的參數(shù)類型識(shí)別器也不同,例如,當(dāng)待測(cè)試應(yīng)用接口為HSF接口時(shí),預(yù)先設(shè)置的參數(shù)類型識(shí)別器可以為5個(gè),分別為Java基礎(chǔ)數(shù)據(jù)類型處理器、List類型處理器、Map類型處理器、Array類型處理器和DTO類型處理器。

由于當(dāng)前原始入口參數(shù)是樹(shù)形結(jié)構(gòu),因此可以采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型識(shí)別器逐層深度解析當(dāng)前原始入口參數(shù),直到解析出當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型為止,完成當(dāng)前原始入口參數(shù)的解析。

S123:記錄解析出的當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系,得到當(dāng)前原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。

在S122中解析出了當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型,這些基礎(chǔ)數(shù)據(jù)類型之間通常是有關(guān)聯(lián)關(guān)系的,在本步驟中,可以在當(dāng)前原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中記錄當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型以及這些基礎(chǔ)數(shù)據(jù)類型之間的關(guān)聯(lián)關(guān)系。

經(jīng)過(guò)S121-S123實(shí)現(xiàn)解析一個(gè)原始入口參數(shù),針對(duì)不同的原始入口參數(shù)可以重復(fù)執(zhí)行S121-S123,直到得到待測(cè)試應(yīng)用接口包括的每個(gè)方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。S121-S123中采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型識(shí)別器逐層解析當(dāng)前原始入口參數(shù),無(wú)需編寫(xiě)專門(mén)的代碼,從而減少工作量且提升測(cè)試效率。

相應(yīng)地,上述S12中的遞歸解析每個(gè)方法的原始出口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板的實(shí)現(xiàn)過(guò)程,針對(duì)待測(cè)試應(yīng)用接口包括的每個(gè)方法的原始出口參數(shù)執(zhí)行:獲取當(dāng)前方法的原始出口參數(shù);采用至少兩個(gè)參數(shù)類型識(shí)別器逐層解析原始出口參數(shù),直到解析出原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型;將解析出的原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系作為原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。

解析原始出口參數(shù)的方法與原始入口參數(shù)的方法是相同的,具體過(guò)程參見(jiàn)S121-S123,這里不再贅述。

可選的,上述S13中的根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常的實(shí)現(xiàn)過(guò)程,如圖4所示,針對(duì)待測(cè)試應(yīng)用接口包括的每個(gè)方法執(zhí)行:

S131:獲取當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,根據(jù)當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分 別生成當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)。

可以由用戶提供當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,例如,基礎(chǔ)數(shù)據(jù)類型可以為顏色、大小、款式、面料等等,對(duì)應(yīng)的期望值分別為紅色、L、韓版、棉等等,然后根據(jù)當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)。原始入口參數(shù)與調(diào)用入口參數(shù)是一一對(duì)應(yīng)的關(guān)系,每個(gè)原始入口參數(shù)都會(huì)生成一個(gè)調(diào)用入口參數(shù)。

S132:獲取當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,根據(jù)當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值生成當(dāng)前方法的調(diào)用出口參數(shù)。

可以由用戶提供當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,例如,基礎(chǔ)數(shù)據(jù)類型可以為顏色、大小、款式、面料等等,對(duì)應(yīng)的期望值分別為紅色、L、韓版、棉等等,然后根據(jù)當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成當(dāng)前方法的調(diào)用出口參數(shù),原始出口參數(shù)與調(diào)用出口參數(shù)是一一對(duì)應(yīng)的關(guān)系。

S133:根據(jù)當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)調(diào)用當(dāng)前方法,得到當(dāng)前方法的計(jì)算出口參數(shù)。

S134:確定當(dāng)前方法的計(jì)算出口參數(shù)與當(dāng)前方法的調(diào)用出口參數(shù)是否一致,若當(dāng)前方法的計(jì)算出口參數(shù)與當(dāng)前方法的調(diào)用出口參數(shù)一致,則執(zhí)行S135;若當(dāng)前方法的計(jì)算出餐與當(dāng)前方法的調(diào)用出口參數(shù)不一致,則執(zhí)行S136。

S135:確定當(dāng)前方法正常。

S136:確定當(dāng)前方法異常。

根據(jù)當(dāng)前方法的調(diào)用入口參數(shù)調(diào)用當(dāng)前方法后,得到當(dāng)前方法的計(jì)算出口參數(shù),然后將當(dāng)前方法的調(diào)用出口參數(shù)與計(jì)算出口參數(shù)進(jìn)行比較,若二者一致,則說(shuō)明當(dāng)前方法是正常的;反之,則說(shuō)明當(dāng)前方法是異常的。經(jīng)過(guò)S131-S136實(shí)現(xiàn)確定當(dāng)前方法是否正常,該過(guò)程中也無(wú)需編寫(xiě)專門(mén)的代碼,從而減少工作量且提升測(cè)試效率。

其中,根據(jù)當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成當(dāng)前方法的每個(gè)調(diào)用入口參數(shù),具體包括:構(gòu)建當(dāng)前方法的調(diào)用工程;基于當(dāng)前方法的調(diào)用工程將當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入當(dāng)前方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型生成器分別生成當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)。

對(duì)于不同類型的備選應(yīng)用接口,構(gòu)建當(dāng)前方法的調(diào)用工程的方式可能有所不同,下面 以備選應(yīng)用接口為HSF接口為例進(jìn)行說(shuō)明:初始化用于應(yīng)用接口調(diào)用的Maven工程,生成用于應(yīng)用接口調(diào)用的XML文件,生成用于應(yīng)用接口調(diào)用的Java代碼模板,從而得到當(dāng)前方法的調(diào)用工程。

待測(cè)試應(yīng)用接口的類型不同時(shí),預(yù)先設(shè)置的參數(shù)類型生成器也不同,例如,當(dāng)待測(cè)試應(yīng)用接口為HSF接口時(shí),預(yù)先設(shè)置的參數(shù)類型生成器可以為5個(gè),分別為Java基礎(chǔ)數(shù)據(jù)類型生成器、List類型生成器、Map類型生成器、Array類型生成器和DTO類型生成器。

相應(yīng)地,根據(jù)當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值生成當(dāng)前方法的調(diào)用出口參數(shù),具體包括:基于當(dāng)前方法的調(diào)用工程將當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;采用至少兩個(gè)參數(shù)類型生成器生成當(dāng)前方法的調(diào)用出口參數(shù)。該過(guò)程與生成當(dāng)前方法的調(diào)用入口參數(shù)的過(guò)程相同,這里不再贅述。

本申請(qǐng)實(shí)施例還提供另一種應(yīng)用接口測(cè)試方法,該方法可以應(yīng)用在測(cè)試RPC框架中的高性能服務(wù)框架(High Service Framework,HSF)接口中,該方法的流程如圖5所示,具體包括以下步驟。

S51:獲取接口二方庫(kù)的Maven依賴,將所有Maven依賴的ClassPath注入到當(dāng)前線程的ClassLoader,得到備選HSF接口及其包括的方法并顯示。

RPC框架中通常包括很多HSF接口,每個(gè)HSF接口包括很多方法,因此需要首先解析出RPC框架中所有的備選HSF接口及其包括的方法并顯示,以供用戶進(jìn)行選擇。

S52:接收用戶選擇的備選HSF接口,得到待測(cè)試HSF接口。

用戶可以從顯示的所有備選HSF接口中選擇需要測(cè)試的備選HSF接口作為待測(cè)試HSF接口。

S53:獲取待測(cè)試HSF接口包括的方法。

在得到待測(cè)試HSF接口后,可以從S51的解析結(jié)果中獲取該待測(cè)試HSF接口包括的方法。

S54:針對(duì)待測(cè)試HSF接口包括的每個(gè)方法的每個(gè)原始入口參數(shù)執(zhí)行:獲取當(dāng)前方法的當(dāng)前原始入口參數(shù);采用預(yù)先設(shè)置的五個(gè)參數(shù)類型識(shí)別器逐層解析當(dāng)前原始入口參數(shù),直到解析出當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型;記錄解析出的當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系,得到當(dāng)前原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。

由于每個(gè)應(yīng)用接口通常會(huì)包括多個(gè)方法,而每個(gè)方法會(huì)有多個(gè)原始入口參數(shù),因此需要逐一遞歸解析待測(cè)試HSF接口包括的每個(gè)方法的每個(gè)原始入口參數(shù),當(dāng)前正在解析的方法的原始入口參數(shù)為當(dāng)前方法的當(dāng)前原始入口參數(shù)。

預(yù)先設(shè)置的五個(gè)參數(shù)類型識(shí)別器分別為Java基礎(chǔ)數(shù)據(jù)類型處理器、List類型處理器、Map類型處理器、Array類型處理器和DTO類型處理器,可以將當(dāng)前原始入口參數(shù)依次分配給這五個(gè)參數(shù)類型識(shí)別器,直到得到當(dāng)前原始入口參數(shù)包括的所有基礎(chǔ)數(shù)據(jù)類型。下面詳細(xì)介紹每個(gè)參數(shù)類型識(shí)別器的處理過(guò)程。

1、Java基礎(chǔ)數(shù)據(jù)類型處理器,識(shí)別Java基礎(chǔ)數(shù)據(jù)類型,是遞歸解析的終點(diǎn),主要包括String、Integer、Long、Double、Boolean、Date、BigInteger、BigDecimal以及枚舉類型等。

2、List類型處理器,用于完成List類型的解析,首先判斷出當(dāng)前原始入口參數(shù)中List的具體類型,例如ArrayList、HashSet等等,然后判斷該List內(nèi)裝載的數(shù)據(jù)類型,若裝載的數(shù)據(jù)類型為L(zhǎng)ist,則繼續(xù)解析,若裝載的數(shù)據(jù)類型不是List,則傳遞給其他參數(shù)類型識(shí)別器。

3、Map類型處理器,用于完成映射表值類型的解析(Map的鍵值為Java基礎(chǔ)數(shù)據(jù)類型),首先判斷出當(dāng)前原始入口參數(shù)中Map的具體類型,例如HashMap、TreeMap等等,然后判斷該Map內(nèi)映射表值裝載的數(shù)據(jù)類型,若裝載的數(shù)據(jù)類型為Map,則繼續(xù)解析,若裝載的數(shù)據(jù)類型不是Map,則傳遞給其他參數(shù)類型識(shí)別器。

4、Array類型處理器,Array為Java數(shù)組,直接判斷當(dāng)前原始入口參數(shù)中Array內(nèi)裝載的數(shù)據(jù)類型,若裝載的數(shù)據(jù)類型為Array,則繼續(xù)解析,若裝載的數(shù)據(jù)類型不是Array,則傳遞給其他參數(shù)類型識(shí)別器。

5、DTO類型處理器,用于處理DTO這個(gè)class的解析,首先解析當(dāng)前原始入口參數(shù)DTO中的屬性特征field,若field不包括set和get,則繼續(xù)解析,若field不包括set和get,則傳遞給其他參數(shù)類型識(shí)別器。

由于當(dāng)前原始入口參數(shù)是樹(shù)形結(jié)構(gòu),因此可以采用預(yù)先設(shè)置的五個(gè)參數(shù)類型識(shí)別器逐層深度解析當(dāng)前原始入口參數(shù),直到解析出當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型為止,完成當(dāng)前原始入口參數(shù)的解析。

S55:針對(duì)待測(cè)試HSF接口包括的每個(gè)方法的原始出口參數(shù)執(zhí)行:獲取當(dāng)前方法的原始出口參數(shù);采用五個(gè)參數(shù)類型識(shí)別器逐層解析原始出口參數(shù),直到解析出原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型;將解析出的原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系作為原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。

可以同樣采用上述五個(gè)參數(shù)類型識(shí)別器解析每個(gè)方法的原始出口參數(shù),解析過(guò)程不再贅述。

S54和S55沒(méi)有嚴(yán)格的先后順序,可以根據(jù)實(shí)際需要進(jìn)行設(shè)定。

S56:針對(duì)待測(cè)試HSF接口包括的每個(gè)方法執(zhí)行:獲取當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值;構(gòu)建當(dāng)前方法的調(diào)用工程;基于當(dāng)前方法的調(diào)用工程將當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入當(dāng)前方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;采用預(yù)先設(shè)置的五個(gè)參數(shù)類型生成器分別生成當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)。

可以由用戶提供當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,例如,基礎(chǔ)數(shù)據(jù)類型可以為顏色、大小、款式、面料等等,對(duì)應(yīng)的期望值分別為紅色、L、韓版、棉等等,然后根據(jù)當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)。原始入口參數(shù)與調(diào)用入口參數(shù)是一一對(duì)應(yīng)的關(guān)系,每個(gè)原始入口參數(shù)都會(huì)生成一個(gè)調(diào)用入口參數(shù)。

構(gòu)建當(dāng)前方法的調(diào)用工程的方式為:初始化用于應(yīng)用接口調(diào)用的Maven工程,生成用于應(yīng)用接口調(diào)用的XML文件,生成用于應(yīng)用接口調(diào)用的Java代碼模板,從而得到當(dāng)前方法的調(diào)用工程。

預(yù)先設(shè)置的五個(gè)參數(shù)類型生成器分別為Java基礎(chǔ)數(shù)據(jù)類型生成器、List類型生成器、Map類型生成器、Array類型生成器和DTO類型生成器,下面詳細(xì)介紹每個(gè)參數(shù)類型識(shí)別器的處理過(guò)程。

1、List類型生成器:填寫(xiě)List類型第一個(gè)元素中所有解析出的Java基礎(chǔ)數(shù)據(jù)類型的期望值,填寫(xiě)多個(gè)元素可以深度復(fù)制第一個(gè)元素后填寫(xiě)。

2、Array類型生成器:同List類型生成器的處理方式一致。

3、Map類型生成器:填寫(xiě)映射表第一對(duì)元素的key值和value中解析出的所有Java基礎(chǔ)數(shù)據(jù)類型的期望值,填寫(xiě)多個(gè)元素可以深度復(fù)制映射表模板后填寫(xiě)。

4、DTO類型生成器:填寫(xiě)DTO中解析出的field的期望值,如果該field不是Java基礎(chǔ)數(shù)據(jù)類型,則填寫(xiě)該field遞歸解析后的基礎(chǔ)數(shù)據(jù)類型的期望值。

5、Java基礎(chǔ)數(shù)據(jù)類型生成器:對(duì)于Integer/Long,String/Char,Boolean,Float/Double,枚舉,BigInteger,BigDecimal,Date類型,用戶直接填寫(xiě)相應(yīng)的期望值。

值得說(shuō)明的是,如果解析過(guò)程中出現(xiàn)了泛型節(jié)點(diǎn),則需要用戶明確指定該泛型節(jié)點(diǎn)的具體實(shí)現(xiàn)類型,然后進(jìn)行二次解析,生成泛型節(jié)點(diǎn)實(shí)現(xiàn)類型的結(jié)構(gòu)數(shù)據(jù)模板提供給用戶編輯。

S57:獲取當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,基于當(dāng)前方法的調(diào)用工程將當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;采用五個(gè)參數(shù)類型生成器生成 當(dāng)前方法的調(diào)用出口參數(shù)。

可以由用戶提供當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,例如,基礎(chǔ)數(shù)據(jù)類型可以為顏色、大小、款式、面料等等,對(duì)應(yīng)的期望值分別為紅色、L、韓版、棉等等,然后根據(jù)當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成當(dāng)前方法的調(diào)用出口參數(shù),原始出口參數(shù)與調(diào)用出口參數(shù)是一一對(duì)應(yīng)的關(guān)系。

S58:根據(jù)當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)調(diào)用當(dāng)前方法,得到當(dāng)前方法的計(jì)算出口參數(shù);確定當(dāng)前方法的計(jì)算出口參數(shù)與當(dāng)前方法的調(diào)用出口參數(shù)是否一致,若當(dāng)前方法的計(jì)算出口參數(shù)與當(dāng)前方法的調(diào)用出口參數(shù)一致,則確定當(dāng)前方法正常;如當(dāng)前方法的計(jì)算出餐與當(dāng)前方法的調(diào)用出口參數(shù)不一致,則確定當(dāng)前方法異常。

S59:確定待測(cè)試HSF接口包括的每個(gè)方法是否都正常,若待測(cè)試HSF接口包括的每個(gè)方法都正常,則執(zhí)行S58;若待測(cè)試接口包括的至少一個(gè)方法異常,則執(zhí)行S59。

在確定完待測(cè)試HSF接口的所有方法是否正常后,可以執(zhí)行S59。

S60:確定待測(cè)試HSF接口正常。

S61:確定待測(cè)試HSF接口異常。

該方案中,在測(cè)試待測(cè)試HSF接口是否正常時(shí),會(huì)首先得到每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,然后根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常,最終確定待測(cè)試HSF接口是否正常,整個(gè)過(guò)程中無(wú)需編寫(xiě)專門(mén)的代碼,從而大大減少了工作量,并且提高了測(cè)試效率。

基于同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例還提供一種應(yīng)用接口測(cè)試裝置,該裝置與如圖1所示的應(yīng)用接口測(cè)試方法相對(duì)應(yīng),該裝置的結(jié)構(gòu)如6圖所示,包括第一確定單元61、解析單元62、第二確定單元63和第三確定單元64,其中:

上述第一確定單元61,用于確定待測(cè)試應(yīng)用接口及其包括的方法;

上述解析單元62,用于遞歸解析每個(gè)方法的每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;以及,遞歸解析每個(gè)方法的原始出口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;

上述第二確定單元63,用于根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常;

上述第三確定單元64,用于確定待測(cè)試應(yīng)用接口包括的每個(gè)方法是否都正常;若待測(cè) 試應(yīng)用接口包括的每個(gè)方法都正常,則確定待測(cè)試應(yīng)用接口正常。

該方案中,在測(cè)試待測(cè)試應(yīng)用接口是否正常時(shí),會(huì)首先得到每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,然后根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常,最終確定待測(cè)試應(yīng)用接口是否正常,整個(gè)過(guò)程中無(wú)需編寫(xiě)專門(mén)的代碼,從而大大減少了工作量,并且提高了測(cè)試效率。

具體的,上述第一確定單元61,用于確定待測(cè)試應(yīng)用接口及其包括的方法,具體用于:

解析出所有的備選應(yīng)用接口及其包括的方法并顯示;

接收用戶選擇的備選應(yīng)用接口,得到待測(cè)試應(yīng)用接口;

獲取待測(cè)試應(yīng)用接口包括的方法。

具體的,上述解析單元62,用于遞歸解析每個(gè)方法的每個(gè)原始入口參數(shù),得到對(duì)應(yīng)方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,具體用于:

針對(duì)待測(cè)試應(yīng)用接口包括的每個(gè)方法的每個(gè)原始入口參數(shù)執(zhí)行:

獲取當(dāng)前方法的當(dāng)前原始入口參數(shù);

采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型識(shí)別器逐層解析當(dāng)前原始入口參數(shù),直到解析出當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型;

記錄解析出的當(dāng)前原始入口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系,得到當(dāng)前原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板;

上述解析單元62,用于遞歸解析每個(gè)方法的原始出口參數(shù),得到對(duì)應(yīng)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板,具體用于:

針對(duì)待測(cè)試應(yīng)用接口包括的每個(gè)方法的原始出口參數(shù)執(zhí)行:

獲取當(dāng)前方法的原始出口參數(shù);

采用至少兩個(gè)參數(shù)類型識(shí)別器逐層解析原始出口參數(shù),直到解析出原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型;

記錄解析出的原始出口參數(shù)包括的基礎(chǔ)數(shù)據(jù)類型及其之間的關(guān)聯(lián)關(guān)系,得到原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板。

具體的,上述第二確定單元63,用于根據(jù)每個(gè)方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板和每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板確定對(duì)應(yīng)方法是否正常,具體用于:

針對(duì)待測(cè)試應(yīng)用接口包括的每個(gè)方法執(zhí)行:

獲取當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,根據(jù)當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成當(dāng)前方法的每個(gè)調(diào)用入口參數(shù);以及,

獲取當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型的期望值,根據(jù)當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值生成當(dāng)前方法的調(diào)用出口參數(shù);

根據(jù)當(dāng)前方法的每個(gè)調(diào)用入口參數(shù)調(diào)用當(dāng)前方法,得到當(dāng)前方法的計(jì)算出口參數(shù);

確定當(dāng)前方法的計(jì)算出口參數(shù)與當(dāng)前方法的調(diào)用出口參數(shù)是否一致;

若當(dāng)前方法的計(jì)算出口參數(shù)與當(dāng)前方法的調(diào)用出口參數(shù)一致,則確定當(dāng)前方法正常。

具體的,上述第二確定單元63,用于根據(jù)當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值分別生成當(dāng)前方法的每個(gè)調(diào)用入口參數(shù),具體用于:

構(gòu)建當(dāng)前方法的調(diào)用工程;

基于當(dāng)前方法的調(diào)用工程將當(dāng)前方法的每個(gè)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入當(dāng)前方法的對(duì)應(yīng)原始入口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;

采用預(yù)先設(shè)置的至少兩個(gè)參數(shù)類型生成器分別生成當(dāng)前方法的每個(gè)調(diào)用入口參數(shù);

上述第二確定單元63,用于根據(jù)當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板包括的基礎(chǔ)數(shù)據(jù)類型及其期望值生成當(dāng)前方法的調(diào)用出口參數(shù),具體用于:

基于當(dāng)前方法的調(diào)用工程將當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中包括的基礎(chǔ)數(shù)據(jù)類型的期望值帶入當(dāng)前方法的原始出口參數(shù)的結(jié)構(gòu)數(shù)據(jù)模板中;

采用至少兩個(gè)參數(shù)類型生成器生成當(dāng)前方法的調(diào)用出口參數(shù)。

可選的,上述第三確定單元64,還用于:

若待測(cè)試應(yīng)用接口包括的至少一個(gè)方法異常,則確定待測(cè)試接口異常。

上述說(shuō)明示出并描述了本申請(qǐng)的優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解本申請(qǐng)并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過(guò)上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本申請(qǐng)的精神和范圍,則都應(yīng)在本申請(qǐng)所附權(quán)利要求的保護(hù)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1