構(gòu),請(qǐng)求報(bào)文模板的結(jié)構(gòu)包括:請(qǐng)求報(bào)文模板中所有節(jié)點(diǎn)的輸入域、每個(gè)輸入 域結(jié)構(gòu)類型。
[0035]本實(shí)施中,應(yīng)用程序接口對(duì)應(yīng)的請(qǐng)求報(bào)文模板可根據(jù)應(yīng)用程序接口說(shuō)明文檔編寫 而成,另外,對(duì)于Web服務(wù)類型的應(yīng)用程序接口,請(qǐng)求報(bào)文模板可以通過(guò)解析接口的服務(wù)描 述語(yǔ)言文件(Web Services Description Language,簡(jiǎn)稱WSDL文件)來(lái)獲取。
[0036]本實(shí)施例中,舉例說(shuō)明,XML格式的請(qǐng)求報(bào)文模板可以表示為:
[0038] 該舉例中,請(qǐng)求報(bào)文模板的根節(jié)點(diǎn)指沒(méi)有上級(jí)節(jié)點(diǎn)的節(jié)點(diǎn);如舉例中的節(jié)點(diǎn) C0NTR0L_DATA,葉子節(jié)點(diǎn)指沒(méi)有下級(jí)節(jié)點(diǎn)的節(jié)點(diǎn),如舉例中的節(jié)點(diǎn)CODE及NAME。
[0039] 步驟102,確定請(qǐng)求報(bào)文模板中每個(gè)根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型,生成相應(yīng)的輸 入域標(biāo)題,每個(gè)根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型包括原子結(jié)構(gòu)類型或復(fù)雜自定義結(jié)構(gòu)類型或 數(shù)組結(jié)構(gòu)類型。
[0040] 本實(shí)施例中,如果根節(jié)點(diǎn)也是葉子節(jié)點(diǎn),則此節(jié)點(diǎn)輸入域?yàn)樵咏Y(jié)構(gòu)類型。如果根 節(jié)點(diǎn)包含下級(jí)節(jié)點(diǎn),即表現(xiàn)為嵌套節(jié)點(diǎn),并且不包含屬性type,則此節(jié)點(diǎn)輸入域?yàn)閺?fù)雜自定 義數(shù)據(jù)類型。如果根節(jié)點(diǎn)包含屬性type,并且type值為"array",則此節(jié)點(diǎn)輸入域?yàn)閿?shù)組結(jié) 構(gòu)類型。如上例所示,0PERATI0NTYPE節(jié)點(diǎn)和PR0DUCTID節(jié)點(diǎn)都是原子結(jié)構(gòu)類型,C0NTR0L_ DATA節(jié)點(diǎn)為復(fù)雜自定義結(jié)構(gòu)類型節(jié)點(diǎn)。ACCOUNT節(jié)點(diǎn)為數(shù)組結(jié)構(gòu)類型。
[0041 ]再確定請(qǐng)求報(bào)文模板中每個(gè)根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型,生成相應(yīng)的輸入域標(biāo) 題時(shí),對(duì)于不同輸入域結(jié)構(gòu)類型,其輸入域標(biāo)題的格式也不同。
[0042] 如若根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型為原子結(jié)構(gòu)類型,則生成相應(yīng)的輸入域標(biāo)題 為:以原子結(jié)構(gòu)類型的輸入域的XML節(jié)點(diǎn)名表示對(duì)應(yīng)的輸入域標(biāo)題。
[0043] 如上例所示,原子結(jié)構(gòu)類型節(jié)點(diǎn)〈OPERATIONTYPEX/OTORATIONTYPE〉的標(biāo)題為 0PERATI0NTYPE〇
[0044] 如若確定某根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型為復(fù)雜自定義結(jié)構(gòu)類型,則生成對(duì)應(yīng)的 輸入域標(biāo)題具體包括:
[0045] 將復(fù)雜自定義結(jié)構(gòu)類型的輸入域的根節(jié)點(diǎn)的所有葉子節(jié)點(diǎn)的標(biāo)題使用第一預(yù)設(shè) 分隔符拼接,生成對(duì)應(yīng)的輸入域標(biāo)題;
[0046] 其中,葉子節(jié)點(diǎn)的標(biāo)題由葉子節(jié)點(diǎn)的由遠(yuǎn)及近的所有上級(jí)節(jié)點(diǎn)名及葉子節(jié)點(diǎn)使用 第二預(yù)設(shè)分隔符拼接而成。
[0047]如上述舉例所示,若確定某根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型為復(fù)雜自定義結(jié)構(gòu)類 型,則生成對(duì)應(yīng)的輸入域標(biāo)題具體的處理流程可以參照?qǐng)D2所示。如圖2所示,確定請(qǐng)求報(bào)文 模板中某一根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型為復(fù)雜自定義類型,生成相應(yīng)的輸入域標(biāo)題生成 復(fù)雜自定義結(jié)構(gòu)類型標(biāo)題的具體步驟為:
[0048]步驟201,獲取第N個(gè)葉子節(jié)點(diǎn)的所有上級(jí)節(jié)點(diǎn)。
[0049] 如上例所示,復(fù)雜自定義結(jié)構(gòu)類型節(jié)點(diǎn)C0NTR0L_DATA的第一個(gè)葉子節(jié)點(diǎn)為SEQ_ NO,所有上級(jí)節(jié)點(diǎn)為C0NTR0L_DATA;
[0050] 步驟202,將第N個(gè)葉子節(jié)點(diǎn)的所有上級(jí)節(jié)點(diǎn)名和本葉子節(jié)點(diǎn)名用第二預(yù)設(shè)分隔符 連接,得到第N個(gè)葉子節(jié)點(diǎn)的標(biāo)題。
[0051] 本實(shí)施例中,第二預(yù)設(shè)分隔符可以為也可以為不同于第一預(yù)設(shè)分隔符和第三 預(yù)設(shè)分隔符的其他分隔符,本實(shí)施例中不做限定。
[0052] 如上例所示,復(fù)雜自定義結(jié)構(gòu)類型節(jié)點(diǎn)C0NTR0L_DATA的第一個(gè)葉子節(jié)點(diǎn)為SEQ_N0 標(biāo)題為 C0NTR0L_DATA · SEQ_N0。
[0053] 步驟203,判斷復(fù)雜自定義結(jié)構(gòu)類型是否具有其他葉子節(jié)點(diǎn),若是,則N+1,繼續(xù)執(zhí) 行步驟201,若否,則執(zhí)行步驟204。
[0054] 如上例所示,判斷復(fù)雜自定義結(jié)構(gòu)類型具有其他葉子節(jié)點(diǎn),分別為第二葉子節(jié)點(diǎn) ⑶DE和第三葉子節(jié)點(diǎn),則獲取第二個(gè)葉子節(jié)點(diǎn)⑶DE節(jié)點(diǎn)的所有上級(jí)節(jié)點(diǎn)⑶NTR0L_DATA、 BRANCH。將所有上級(jí)節(jié)點(diǎn)名和本葉子節(jié)點(diǎn)名用第二預(yù)設(shè)分隔符連接,得到第二個(gè)葉子節(jié)點(diǎn) 的標(biāo)題⑶NTR0L_DATA. BRANCH.⑶DE。同樣的方式得到第三個(gè)葉子節(jié)點(diǎn)的標(biāo)題⑶NTR0L_ DATA.BRANCH.NAME〇
[0055] 步驟204,將復(fù)雜自定義結(jié)構(gòu)類型的輸入域的根節(jié)點(diǎn)的所有葉子節(jié)點(diǎn)的標(biāo)題使用 第一預(yù)設(shè)分隔符拼接,生成對(duì)應(yīng)的輸入域標(biāo)題。
[0056]如上例所示,生成的復(fù)雜自定義結(jié)構(gòu)類型輸入域標(biāo)題可以表示為:"⑶NTR0L_ DATA.SEQ_N0|C0NTR0L_DATA. BRANCH. NAME|C0NTR0L_DATA. BRANCH. CODE" 〇 [0057]若確定某根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型為數(shù)組結(jié)構(gòu)類型,則生成對(duì)應(yīng)的輸入域具 體包括:
[0058]確定數(shù)組結(jié)構(gòu)類型輸入域的所有葉子節(jié)點(diǎn)的標(biāo)題;
[0059] 將所有葉子節(jié)點(diǎn)的標(biāo)題用第三預(yù)設(shè)分隔符連接,并在最前的葉子節(jié)點(diǎn)的標(biāo)題前端 和最后的葉子節(jié)點(diǎn)的標(biāo)題后端采用第一預(yù)設(shè)括號(hào)括起;
[0060] 在第一預(yù)設(shè)括號(hào)的左括號(hào)的前端添加數(shù)組結(jié)構(gòu)類型輸入域名,并在數(shù)組結(jié)構(gòu)類型 輸入域名前端和第一預(yù)設(shè)括號(hào)右括號(hào)的后端采用第二預(yù)設(shè)括號(hào)括起。
[0061] 如上述舉例所示,若確定某根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型為數(shù)組結(jié)構(gòu)類型,則生 成對(duì)應(yīng)的輸入域標(biāo)題具體的處理流程可以參照?qǐng)D3所示。如圖3所示,確定請(qǐng)求報(bào)文模板中 某一根節(jié)點(diǎn)對(duì)應(yīng)的輸入域結(jié)構(gòu)類型為數(shù)組結(jié)構(gòu)類型,生成復(fù)雜自定義結(jié)構(gòu)類型標(biāo)題的具體 步驟為:
[0062]步驟301,獲取第N個(gè)葉子節(jié)點(diǎn)的除根節(jié)點(diǎn)以外的所有上級(jí)節(jié)點(diǎn)。
[0063]如上例所示,數(shù)組結(jié)構(gòu)類型節(jié)點(diǎn)ACCOUNT的第一個(gè)節(jié)點(diǎn)NUMBER的所有上級(jí)節(jié)點(diǎn)為 空。
[0064] 步驟302,將除根節(jié)點(diǎn)以外的所有上級(jí)節(jié)點(diǎn)和本葉子節(jié)點(diǎn)名采用第二預(yù)設(shè)分隔符 連接,得到第N個(gè)葉子節(jié)點(diǎn)的標(biāo)題。
[0065] 如在上述舉例中,第一個(gè)葉子節(jié)點(diǎn)的標(biāo)題為NUMBER。
[0066] 步驟303,判斷是否還有其他葉子節(jié)點(diǎn),若是,則N+1,繼續(xù)執(zhí)行步驟301,若否,則執(zhí) 行步驟304。
[0067]如上例所示,判斷數(shù)組結(jié)構(gòu)類型具有其他葉子節(jié)點(diǎn),為第二個(gè)節(jié)點(diǎn)BANK_C0UNTRY, 執(zhí)行步驟301后,第二個(gè)葉子節(jié)點(diǎn)的除根節(jié)點(diǎn)以外的所有上級(jí)節(jié)點(diǎn)為空,執(zhí)行步驟302后,得 到第二個(gè)葉子節(jié)點(diǎn)的標(biāo)題為BANK_COUNTRY。
[0068] 步驟304,將所有葉子節(jié)點(diǎn)的標(biāo)題用第三預(yù)設(shè)分隔符連接,并在最前的葉子節(jié)點(diǎn)的 標(biāo)題前端和最后的葉子節(jié)點(diǎn)的標(biāo)題后端采用第一預(yù)設(shè)括號(hào)括起。
[0069] 本實(shí)施例中,第三預(yù)設(shè)分隔符可以為","或者為除第一預(yù)設(shè)分隔符和第二預(yù)設(shè)分 隔符以外的其他分隔符,本實(shí)施例中不做限定。
[0070] 本實(shí)施例中,第一預(yù)設(shè)括號(hào)可以為"{}"也可以為小括號(hào)等,本實(shí)施例中不做限定。
[0071] 如上例所示,通過(guò)步驟304后,得到{NUMBER,BANK_COUNTRY}。
[0072]步驟305,在第一預(yù)設(shè)括號(hào)的左括號(hào)的前端添加數(shù)組結(jié)構(gòu)類型輸入域名,并在數(shù)組 結(jié)構(gòu)類型輸入域名前端和第一預(yù)設(shè)括號(hào)右括號(hào)的后端采用第二預(yù)設(shè)括號(hào)括起。
[0073]本實(shí)施例中,第二預(yù)設(shè)括號(hào)可以為"[]",也可以為與第一預(yù)設(shè)括號(hào)不同的其他括 號(hào),本實(shí)施例中不做限定。
[0074] 如在上述舉例中,數(shù)組結(jié)構(gòu)類型輸入域名為ACCOUNT,第二預(yù)設(shè)括號(hào)為"[]",數(shù)組 結(jié)構(gòu)類型輸入域的標(biāo)題表示[ACCOUNT{NUMBER,BANK_COUNTRY}]。
[0075] 步驟103,將所有的輸入域標(biāo)題使用第一預(yù)設(shè)分隔符連接獲得對(duì)應(yīng)的應(yīng)用程序接 口的測(cè)試案例的標(biāo)題行。
[0076]本實(shí)施例中,第一預(yù)設(shè)分隔符可以為"|",也可以為不同與第二預(yù)設(shè)分隔符和第三 預(yù)設(shè)分隔符以外的其他分隔符,本實(shí)施例中不做限定。
[0077] 如在上述舉例中,將所有輸入域標(biāo)題使用第一預(yù)設(shè)分隔符連接獲得對(duì)應(yīng)的應(yīng)用程 序接口的測(cè)試案例的標(biāo)題行表示為:"
[0078] 0PERATI0NTYPE|PRODUCTID|C0NTR0L_DATA.SEQ_N01C0NTR0L_DATA. BRANCH. NAME C0NTR0L_DATA.BRANCH.CODE|[ACCOUNT{NUMBER,BANK_C0UNTRY}]"〇
[0079] 步驟104,獲取用戶按照請(qǐng)求報(bào)文模板的結(jié)構(gòu)輸入的對(duì)應(yīng)的應(yīng)用程序接口的多個(gè) 測(cè)試案例的數(shù)據(jù)行,每個(gè)測(cè)試案例的數(shù)據(jù)行中包括輸入的數(shù)據(jù)及連接輸入的數(shù)據(jù)的與標(biāo)題