Xml格式的接口測試案例報文的生成方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[00011本發(fā)明實施例涉及接口測試技術(shù)領(lǐng)域,尤其涉及一種XML格式的接口測試案例報 文的生成方法和裝置。
【背景技術(shù)】
[0002] 可擴展標(biāo)記語言(Extensive Markup Language,簡稱:XML)由于具有結(jié)構(gòu)化、可擴 展性,非常適合于網(wǎng)絡(luò)傳輸和跨平臺使用,所以越來越多地應(yīng)用于描述和交換獨立于應(yīng)用 程序的結(jié)構(gòu)化數(shù)據(jù)。而在接口測試中,測試案例一般存儲為扁平化結(jié)構(gòu),最常見的形式就是 使用表格存儲測試案例,表格首行為標(biāo)題行,其余每行為一條測試案例的數(shù)據(jù)。
[0003] 現(xiàn)有技術(shù)中,對于基于XML格式的數(shù)據(jù)報文的應(yīng)用程序接口,接口對應(yīng)的請求報文 模板中需要進(jìn)行數(shù)據(jù)替換的地方使用預(yù)設(shè)格式的參數(shù)進(jìn)行占位,測試案例文件首行存儲這 些參數(shù)的名稱,其余行存儲對應(yīng)的參數(shù)值。報文組裝的過程就是在模板中依次檢索參數(shù)名, 使用對應(yīng)的數(shù)據(jù)替換參數(shù)的過程?,F(xiàn)有的處理方式,其實忽略了 XML格式的請求報文模板本 身具有的結(jié)構(gòu),單純地將XML格式的請求報文模板視為字符串。
[0004] 這種方式需要為每個輸入域使用不同的參數(shù)來表示,盡管XML格式的請求報文模 板已經(jīng)包含了節(jié)點名稱信息,如果某個輸入域沒有使用參數(shù)而是使用了默認(rèn)值或空值,那 么一旦輸入域需要改用測試案例的數(shù)據(jù),則原有的測試案例存儲文件都要重新生成。同時, 這種方式不支持?jǐn)?shù)組結(jié)構(gòu)類型的輸入域,數(shù)組結(jié)構(gòu)類型的輸入域表現(xiàn)為多次重復(fù)出現(xiàn)的 XML節(jié)點。另外,這種方式拼裝報文的時候都需要請求報文模板的結(jié)構(gòu)信息,且每次參數(shù)替 換都要對請求報文模板進(jìn)行從頭到尾查找,效率不高。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供的一種XML格式的接口測試案例報文的生成方法和裝置,對XML數(shù)據(jù)報 文的應(yīng)用程序接口的測試案例存儲方法進(jìn)行了優(yōu)化,實現(xiàn)將結(jié)構(gòu)化的XML報文模板以及數(shù) 據(jù)存儲為扁平的測試案例文件,支持?jǐn)?shù)組結(jié)構(gòu)類型、自定義復(fù)雜結(jié)構(gòu)類型,報文拼裝的時候 不需要請求報文模板的結(jié)構(gòu)信息,提高了測試案例報文的生成效率,數(shù)組成員個數(shù)可變;數(shù) 組的數(shù)據(jù)不需要特殊格式;支持輸入域的數(shù)據(jù)類型描述。
[0006] 本發(fā)明提供了 XML格式的接口測試案例報文的生成方法,包括:
[0007] 獲取應(yīng)用程序接口的XML格式的請求報文模板,所述請求報文模板包括所述請求 報文模板的結(jié)構(gòu),所述請求報文模板的結(jié)構(gòu)包括:所述請求報文模板中所有節(jié)點的輸入域、 每個輸入域結(jié)構(gòu)類型;
[0008] 確定所述請求報文模板中每個根節(jié)點對應(yīng)的輸入域結(jié)構(gòu)類型,生成相應(yīng)的輸入域 標(biāo)題,所述每個根節(jié)點對應(yīng)的輸入域結(jié)構(gòu)類型包括原子結(jié)構(gòu)類型或復(fù)雜自定義結(jié)構(gòu)類型或 數(shù)組結(jié)構(gòu)類型;
[0009] 將所有的所述輸入域標(biāo)題使用第一預(yù)設(shè)分隔符連接獲得對應(yīng)的應(yīng)用程序接口的 測試案例的標(biāo)題行;
[0010] 獲取用戶按照所述請求報文模板的結(jié)構(gòu)輸入的對應(yīng)的應(yīng)用程序接口的多個測試 案例的數(shù)據(jù)行,所述每個測試案例的數(shù)據(jù)行中包括輸入的數(shù)據(jù)及連接所述輸入的數(shù)據(jù)的與 標(biāo)題行對應(yīng)的預(yù)設(shè)分隔符;
[0011] 將所述標(biāo)題行和所有的數(shù)據(jù)行寫入文件,以獲得測試案例存儲文件;
[0012] 從測試案例存儲文件中讀取標(biāo)題行和數(shù)據(jù)行;
[0013] 確定所述標(biāo)題行中每個輸入域的結(jié)構(gòu)類型,根據(jù)每個輸入域的結(jié)構(gòu)類型將每個輸 入域標(biāo)題和對應(yīng)的數(shù)據(jù)行的數(shù)據(jù),拼裝成XML格式報文節(jié)點;所述拼裝成的XML報文節(jié)點包 括:原子結(jié)構(gòu)類型報文節(jié)點和/或復(fù)雜自定義結(jié)構(gòu)類型報文節(jié)點和/或數(shù)組結(jié)構(gòu)類型報文節(jié) 占.
[0014] 將所有的所述XML格式報文節(jié)點組合生成測試案例的報文。
[0015]本發(fā)明提供了一種XML格式的接口測試案例報文的生成裝置,包括:
[0016] 獲取模塊,用于獲取應(yīng)用程序接口的XML格式的請求報文模板,所述請求報文模板 包括所述請求報文模板的結(jié)構(gòu),所述請求報文模板的結(jié)構(gòu)包括:所述請求報文模板中所有 節(jié)點的輸入域、每個輸入域結(jié)構(gòu)類型;
[0017] 生成模塊,用于確定所述請求報文模板中每個根節(jié)點對應(yīng)的輸入域結(jié)構(gòu)類型,生 成相應(yīng)的輸入域標(biāo)題,所述每個根節(jié)點對應(yīng)的輸入域結(jié)構(gòu)類型包括原子結(jié)構(gòu)類型或復(fù)雜自 定義結(jié)構(gòu)類型或數(shù)組結(jié)構(gòu)類型;
[0018] 獲得模塊,用于將所有的所述輸入域標(biāo)題使用第一預(yù)設(shè)分隔符連接獲得對應(yīng)的應(yīng) 用程序接口的測試案例的標(biāo)題行;
[0019] 所述獲取模塊,還用于獲取用戶按照所述請求報文模板的結(jié)構(gòu)輸入的對應(yīng)的應(yīng)用 程序接口的多個測試案例的數(shù)據(jù)行,所述每個測試案例的數(shù)據(jù)行中包括輸入的數(shù)據(jù)及連接 所述輸入的數(shù)據(jù)的與標(biāo)題行對應(yīng)的預(yù)設(shè)分隔符;
[0020] 所述獲得模塊,用于將所述標(biāo)題行和所有的數(shù)據(jù)行寫入文件,獲得測試案例存儲 文件;
[0021] 讀取模塊,用于從測試案例存儲文件中讀取標(biāo)題行和數(shù)據(jù)行;
[0022] 拼裝模塊,用于確定所述標(biāo)題行中每個輸入域的結(jié)構(gòu)類型,根據(jù)每個輸入域的結(jié) 構(gòu)類型將每個輸入域標(biāo)題和對應(yīng)的數(shù)據(jù)行的數(shù)據(jù),拼裝成XML格式報文節(jié)點;所述拼裝成的 XML報文節(jié)點包括:原子結(jié)構(gòu)類型報文節(jié)點和/或復(fù)雜自定義結(jié)構(gòu)類型報文節(jié)點和/或數(shù)組 結(jié)構(gòu)類型報文節(jié)點;
[0023] 所述生成模塊,還用于將所有的所述XML格式報文節(jié)點組合生成測試案例的報文。
[0024] 本發(fā)明實施例提供的XML格式的接口測試案例報文的生成方法和裝置通過獲取應(yīng) 用程序接口的XML格式的請求報文模板,請求報文模板包括請求報文模板的結(jié)構(gòu),請求報文 模板的結(jié)構(gòu)包括:請求報文模板中所有節(jié)點的輸入域、每個輸入域結(jié)構(gòu)類型;確定請求報文 模板中每個根節(jié)點對應(yīng)的輸入域結(jié)構(gòu)類型,生成相應(yīng)的輸入域標(biāo)題,每個根節(jié)點對應(yīng)的輸 入域結(jié)構(gòu)類型包括原子結(jié)構(gòu)類型或復(fù)雜自定義結(jié)構(gòu)類型或數(shù)組結(jié)構(gòu)類型;將所有的輸入域 標(biāo)題使用第一預(yù)設(shè)分隔符連接獲得對應(yīng)的應(yīng)用程序接口的測試案例的標(biāo)題行;獲取用戶按 照請求報文模板的結(jié)構(gòu)輸入的對應(yīng)的應(yīng)用程序接口的多個測試案例的數(shù)據(jù)行,每個測試案 例的數(shù)據(jù)行中包括輸入的數(shù)據(jù)及連接輸入的數(shù)據(jù)的與標(biāo)題行對應(yīng)的預(yù)設(shè)分隔符;將標(biāo)題行 和所有的數(shù)據(jù)行寫入文件,以獲得測試案例存儲文件;從測試案例存儲文件中讀取標(biāo)題行 和數(shù)據(jù)行;確定標(biāo)題行中每個輸入域的結(jié)構(gòu)類型,根據(jù)每個輸入域的結(jié)構(gòu)類型將每個輸入 域標(biāo)題和對應(yīng)的數(shù)據(jù)行的數(shù)據(jù),拼裝成XML格式報文節(jié)點;拼裝成的XML報文節(jié)點包括:原子 結(jié)構(gòu)類型報文節(jié)點和/或復(fù)雜自定義結(jié)構(gòu)類型報文節(jié)點和/或數(shù)組結(jié)構(gòu)類型報文節(jié)點;將所 有的XML格式報文節(jié)點組合生成測試案例的報文。對XML數(shù)據(jù)報文的應(yīng)用程序接口的測試案 例存儲方法進(jìn)行了優(yōu)化,實現(xiàn)將結(jié)構(gòu)化的XML報文模板以及數(shù)據(jù)存儲為扁平的測試案例文 件,支持?jǐn)?shù)組結(jié)構(gòu)類型、自定義復(fù)雜結(jié)構(gòu)類型,報文拼裝的時候不需要請求報文模板的結(jié)構(gòu) 信息,提高了測試案例報文的生成效率,數(shù)組成員個數(shù)可變;數(shù)組的數(shù)據(jù)不需要特殊格式; 支持輸入域的數(shù)據(jù)類型描述。
【附圖說明】
[0025] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0026] 圖1為本發(fā)明XML格式的接口測試案例報文的生成方法實施例一的流程圖;
[0027] 圖2為本發(fā)明方法的實施例中生成復(fù)雜自定義結(jié)構(gòu)類型標(biāo)題的流程圖;
[0028] 圖3為本發(fā)明方法的實施例中生成數(shù)組結(jié)構(gòu)類型標(biāo)題的流程圖;
[0029] 圖4為本發(fā)明方法的實施例中獲取數(shù)組結(jié)構(gòu)類型數(shù)據(jù)的流程圖;
[0030] 圖5為本發(fā)明方法的實施例中拼裝數(shù)組結(jié)構(gòu)類型報文節(jié)點的流程圖;
[0031 ]圖6為本發(fā)明XML格式的接口測試案例報文的生成裝置實施例一的結(jié)構(gòu)示意圖。
【具體實施方式】
[0032]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員 在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0033]圖1為本發(fā)明XML格式的接口測試案例報文的生成方法實施例一的流程圖,如圖1 所示,該方法包括:
[0034]步驟101,獲取應(yīng)用程序接口的XML格式的請求報文模板,請求報文模板包括請求 報文模板的結(jié)