專利名稱:接口測試方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及測試技術(shù)領(lǐng)域,特別涉及一種接口測試方法及裝置。
背景技術(shù):
集成測試是在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求組裝成系統(tǒng),對組裝 的系統(tǒng)進(jìn)行測試。實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正 常的工作,因此集成測試是非常必要的。在軟件的單元測試與集成測試中,通常需要對軟件的接口進(jìn)行測試,因?yàn)橹挥斜?證軟件接口的穩(wěn)定性,才能保證系統(tǒng)的穩(wěn)定性,所以接口測試稱為軟件測試中一個(gè)重要組 成部分。目前業(yè)界內(nèi)出現(xiàn)一些測試框架,比如JUNIT,其提供了編寫接口測試過程中常用的 方法,比如結(jié)果對比、用例調(diào)度等功能。在基于這個(gè)框架進(jìn)行接口測試時(shí),測試人員需要利 用JUNIT提供的方法,編寫測試代碼。現(xiàn)有技術(shù)的缺點(diǎn)是現(xiàn)有技術(shù)中需要用戶利用JUNIT框架提供的方法,編寫測試代碼,測試效率低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種接口測試方法及裝置,進(jìn)行接口測試時(shí)不需要開發(fā)人員編 寫測試代碼,以提高測試效率。有鑒于此,本發(fā)明實(shí)施例提供一種接口測試裝置,包括接口掃描單元、數(shù)據(jù)定義單元、測試用例封裝單元、用例 執(zhí)行單元和報(bào)告生成單元,所述接口掃描單元,用于根據(jù)用戶指定的接口參數(shù)類型掃描被測試對象;所述數(shù)據(jù)定義單元,用于分析所述接口掃描單元對所述被測試對象的掃描結(jié)果, 展現(xiàn)所述接口參數(shù)類型的結(jié)構(gòu),所述接口參數(shù)類型包括基本對象類型,獲取用戶指定的基 本對象類型的配置信息;所述測試用例封裝單元,用于獲取用戶選擇的用例元素,利用所述數(shù)據(jù)定義單元 獲取的用例元素中基本對象類型的配置信息,獲取所述用例元素中各基本對象類型對應(yīng)的 測試數(shù)據(jù),利用所述用例元素及其中各基本對象類型對應(yīng)的測試數(shù)據(jù)封裝測試用例;所述用例執(zhí)行單元,用于運(yùn)行測試用例封裝單元封裝的測試用例;所述報(bào)告生成單元,用于根據(jù)測試用例的運(yùn)行結(jié)果,生成測試報(bào)告。一種接口測試方法,包括根據(jù)用戶指定的接口參數(shù)類型掃描被測試對象;分析對被測試對象的掃描結(jié)果,展現(xiàn)所述接口參數(shù)類型的結(jié)構(gòu),所述接口參數(shù)類 型包括基本對象類型,獲取用戶指定的基本對象類型的配置信息;獲取用戶選擇的用例元素,利用用例元素中基本對象類型的配置信息,獲取所述用例元素中各基本對象類型對應(yīng)的測試數(shù)據(jù),利用所述用例元素及其中各基本對象類型對 應(yīng)的測試數(shù)據(jù)封裝測試用例;運(yùn)行所述測試用例,生成測試報(bào)告。本發(fā)明實(shí)施例展現(xiàn)接口參數(shù)類型的結(jié)構(gòu)(接口參數(shù)類型包括基本對象類型),并 獲取用戶指定的基本對象類型的配置信息,在封裝測試用例時(shí),利用基本對象類型的配置 信息獲取各基本對象類型對應(yīng)的測試數(shù)據(jù),從而封裝測試用例,使用戶在構(gòu)造測試用例的 過程時(shí)不需要寫入代碼,提高了測試效率。
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例中所需要使用的附 圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域 普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例提供的一接口測試裝置結(jié)構(gòu)圖;圖2A是本發(fā)明實(shí)施例提供的另一接口測試裝置結(jié)構(gòu)圖;圖2B是本發(fā)明實(shí)施例提供的測試用例生成模塊10部分結(jié)構(gòu)圖;圖3A是本發(fā)明實(shí)施例提供的尋址信息選擇示意圖;圖;3B是本發(fā)明實(shí)施例提供的對象構(gòu)造界面示意圖;圖3C是本發(fā)明實(shí)施例提供的對象構(gòu)造的類圖;圖4A是本發(fā)明實(shí)施例提供的接口界面示意圖;圖4B是本發(fā)明實(shí)施例提供的接口封裝的類圖;圖5A是本發(fā)明實(shí)施例提供的邏輯封裝界面示意圖;圖5B是本發(fā)明實(shí)施例提供的邏輯封裝的類圖;圖6A是本發(fā)明實(shí)施例提供的用例封裝界面示意圖;圖6B是本發(fā)明實(shí)施例提供的用例封裝的類圖;圖7A是本發(fā)明實(shí)施例提供的用例調(diào)度界面示意圖;圖7B是本發(fā)明實(shí)施例提供的用例調(diào)度的類圖;圖8是本發(fā)明另一實(shí)施例提供的接口測試裝置結(jié)構(gòu)圖;圖9A是本發(fā)明一實(shí)施例提供的接口測試方法流程圖;圖9B是本發(fā)明另一實(shí)施例提供的接口測試方法流程圖;圖9C是本發(fā)明另一實(shí)施例提供的接口測試方法流程圖;圖10是本發(fā)明另一實(shí)施例提供的接口測試方法流程圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。參閱圖1,本發(fā)明一實(shí)施例提供一種接口測試裝置,包括接口掃描單元101、數(shù)據(jù) 定義單元102、測試用例封裝單元105、用例執(zhí)行單元201和報(bào)告生成單元202,
接口掃描單元101,用于根據(jù)用戶指定的接口參數(shù)類型掃描被測試對象;數(shù)據(jù)定義單元102,用于分析接口掃描單元101對被測試對象的掃描結(jié)果,展現(xiàn)接 口參數(shù)類型的結(jié)構(gòu),該接口參數(shù)類型包括基本對象類型,獲取用戶指定的基本對象類型的 配置信息;測試用例封裝單元105,用于獲取用戶選擇的用例元素,利用數(shù)據(jù)定義單元102獲 取的用例元素中基本對象類型的配置信息,獲取用例元素中各基本對象類型對應(yīng)的測試數(shù) 據(jù),利用用例元素及其中各基本對象類型對應(yīng)的測試數(shù)據(jù)封裝測試用例;用例執(zhí)行單元201,用于運(yùn)行測試用例封裝單元封裝的測試用例;報(bào)告生成單元202,用于根據(jù)測試用例的運(yùn)行結(jié)果,生成測試報(bào)告。其中,接口掃描單元101、數(shù)據(jù)定義單元102和測試用例封裝單元105位于測試用 例生成模塊10上;用例執(zhí)行單元201和報(bào)告生成單元202位于測試用例執(zhí)行模塊20上。數(shù)據(jù)定義單元102具體用于分析接口掃描單元101對被測試對象的掃描結(jié)果,當(dāng) 接口參數(shù)類型為復(fù)雜對象類型時(shí),展現(xiàn)接口參數(shù)類型的樹形結(jié)構(gòu),獲取用戶指定的接口參 數(shù)類型中各基本對象類型的配置信息;當(dāng)接口參數(shù)類型為基本對象類型時(shí),獲取用戶指定 的基本對象類型的配置信息。其中,數(shù)據(jù)定義單元102可以通過如下方式獲取用戶指定的基本對象類型的配置 信息第一種方式為數(shù)據(jù)定義單元102接收用戶輸入的基本對象類型的配置信息;第二種 方式為數(shù)據(jù)定義單元102接收用戶輸入的指示查找接口參數(shù)類型的配置信息的查找指令 后,從本地的共享單元106查找該接口參數(shù)類型的配置信息。具體的,數(shù)據(jù)定義單元102還用于在接收到用戶指示將接口參數(shù)類型的配置信息 共享的指令后,將接口參數(shù)類型的配置信息保存到共享單元106 ;其中接口參數(shù)類型的配 置信息包括接口參數(shù)類型中各基本對象類型的配置信息;測試用例封裝單元105還用于接 收用戶指示將測試用例共享的指令,將測試用例保存到共享單元106 ;共享單元106具體用于保存接口參數(shù)類型的配置信息和測試用例;其中,共享單 元106中保存的接口參數(shù)類型中各基本對象類型的配置信息是數(shù)據(jù)定義單元102以后配置 接口參數(shù)對象時(shí)用戶所指定的基本對象類型的配置信息。 其中,測試用例封裝單元105中利用數(shù)據(jù)定義單元102獲取的用例元素中基本對 象類型的配置信息,獲取用例元素中各基本對象類型對應(yīng)的測試數(shù)據(jù)具體可以通過如下方 式實(shí)現(xiàn)展現(xiàn)用例元素中具有配置信息的基本對象類型,根據(jù)用戶的指令從公共變量池中 查找變量,設(shè)置變量的值作為用戶指定的基本對象類型所對應(yīng)的測試數(shù)據(jù)。還可以通過其 他方式獲取測試數(shù)據(jù),具體參見后續(xù)實(shí)施例對測試用例封裝單元105的描述。本發(fā)明實(shí)施例展現(xiàn)接口參數(shù)類型的結(jié)構(gòu)(接口參數(shù)類型包括基本對象類型),并 獲取用戶指定的基本對象類型的配置信息,在封裝測試用例時(shí),利用基本對象類型的配置 信息獲取各基本對象類型對應(yīng)的測試數(shù)據(jù),從而封裝測試用例,使用戶在構(gòu)造測試用例的 過程時(shí)不需要寫入代碼,提高了測試效率。參閱圖2A和2B,如下對本發(fā)明實(shí)施例提供的接口測試裝置進(jìn)行詳細(xì)描述,該接口 測試裝置可用于軟件的集成測試,接口測試裝置包括測試用例生成模塊10和測試用例執(zhí) 行模塊20,其中測試用例生成模塊10包括
接口掃描單元101,用于根據(jù)接口定義單元獲取的接口參數(shù)類型,掃描被測試對 象;數(shù)據(jù)定義單元102,用于分析接口掃描單元101對被測試對象的掃描結(jié)果,當(dāng)接口 參數(shù)類型為復(fù)雜對象類型時(shí),展現(xiàn)接口參數(shù)類型的結(jié)構(gòu),該接口參數(shù)類型包括基本對象類 型,獲取用戶指定的基本對象類型的配置信息,根據(jù)基本對象類型的配置信息和接口參數(shù) 類型的結(jié)構(gòu)配置接口參數(shù)對象;當(dāng)接口參數(shù)類型為基本對象類型時(shí),獲取用戶指定的基本 對象類型的配置信息,根據(jù)基本對象類型的配置信息配置接口參數(shù)對象;接口定義單元103,用于獲取用戶指定的接口尋址信息、接口返回類型和接口參數(shù) 類型,封裝接口,該接口包括接口尋址信息,接口返回類型對應(yīng)的接口返回對象,數(shù)據(jù)定義 單元102配置的接口參數(shù)對象;測試邏輯封裝單元104,用于獲取用戶選擇的多個(gè)邏輯封裝元素,按照用戶指定的 調(diào)用關(guān)系將多個(gè)邏輯封裝元素封裝成測試邏輯結(jié)構(gòu),多個(gè)邏輯封裝元素包括接口定義單元 103封裝的接口 ;測試用例封裝單元105,用于獲取用戶選擇的用例元素,利用數(shù)據(jù)定義單元102獲 取的用例元素中基本對象類型的配置信息,獲取用例元素中各基本對象類型對應(yīng)的測試數(shù) 據(jù),利用用例元素及其中各基本對象類型對應(yīng)的測試數(shù)據(jù)封裝測試用例;其中,用戶選擇的 用例元素包括測試邏輯封裝單元104封裝的測試邏輯結(jié)構(gòu);測試用例執(zhí)行模塊20包括用例執(zhí)行單元201,用于運(yùn)行測試用例封裝單元封裝的測試用例;報(bào)告生成單元202,用于根據(jù)測試用例的運(yùn)行結(jié)果,生成測試報(bào)告。優(yōu)選的,該測試用例生成模塊10還包括共享單元106和公共變量池107 ;其中,共享單元106,用于保存數(shù)據(jù)定義單元102配置的接口參數(shù)類型的配置信息 (接口參數(shù)類型的配置信息包括該接口參數(shù)類型中基本對象類型的配置信息,基本對象類 型的配置信息即為該基本對象類型的各屬性值)、接口定義單元103封裝的接口、測試邏輯 封裝單元104封裝的測試邏輯結(jié)構(gòu)和測試用例封裝單元105封裝的測試用例;當(dāng)在數(shù)據(jù)定 義單元102封裝接口參數(shù)對象時(shí),如果接收到用戶選擇共享單元106中接口參數(shù)類型配置 信息的指令后,從共享單元106獲取接口參數(shù)類型配置信息以供封裝接口的參數(shù)對象;當(dāng) 邏輯封裝單元104封裝測試邏輯結(jié)構(gòu)時(shí),如果接收到用戶選擇共享單元106中接口的指令, 則從共享單元106中獲取用戶選擇的接口 ;如果接收到用戶選擇共享單元106中測試邏輯 結(jié)構(gòu)的指令,從共享單元106中獲取用戶選擇的測試邏輯結(jié)構(gòu),以封裝測試邏輯結(jié)構(gòu);當(dāng)在 測試用例封裝單元105封裝測試用例時(shí),如果接收到用戶選擇共享單元106中接口的指令, 從共享單元106中獲取用戶選擇的接口 ;如果接收到用戶選擇共享單元106中測試邏輯結(jié) 構(gòu)的指令,從共享單元106中獲取用戶選擇的測試邏輯結(jié)構(gòu),以封裝測試用例。優(yōu)選的,共 享單元提供按名稱過濾的功能,即根據(jù)用戶輸入的接口參數(shù)類型的名稱、接口的名稱、測試 邏輯結(jié)構(gòu)的名稱、測試用例的名稱查找用戶想要的接口參數(shù)類型的配置信息、接口、測試邏 輯結(jié)構(gòu)和/或測試用例,如果在本地沒有找到,則向中央控制器查詢用戶想要的接口參數(shù) 類型的配置信息、接口、測試邏輯結(jié)構(gòu)和/或測試用例。 采用上述共享單元106,當(dāng)多人同時(shí)進(jìn)行接口測試時(shí),能夠通過共享單元106從中 央控制器直接調(diào)用接口參數(shù)類型的配置信息、接口、測試邏輯結(jié)構(gòu)和測試用例,避免重復(fù)配置,可以提高接口的測試效率。公共變量池107,用于保存接口在運(yùn)行過程中產(chǎn)生的數(shù)據(jù),這些數(shù)據(jù)即為變量,每 一個(gè)變量都有一個(gè)變量名稱,規(guī)定變量名稱以$字符開始。用戶可以在邏輯封裝單元104 中的結(jié)果處 理中把接口的返回結(jié)果保存為一個(gè)變量,在用例實(shí)際運(yùn)行時(shí),就會把變量替換 成前面接口實(shí)際返回的數(shù)據(jù),達(dá)到不同的接口傳遞數(shù)據(jù)的目的。比如A接口返回一個(gè)結(jié)果數(shù)據(jù)result,可以在A接口的“結(jié)果處理”中調(diào)用公共 變量池的方法保存該數(shù)據(jù)為一個(gè)變量,變量名稱為$result,如果在B接口中某個(gè)參數(shù)就想 輸入A接口的返回結(jié)果,那么這就可以輸入$result變量。在實(shí)際運(yùn)行過程中,運(yùn)行到B接 口,就會把A接口的返回值用于B接口。這就是變量的作用。在實(shí)際應(yīng)用中,可以把公共變 量池提供給用戶進(jìn)行操作,用戶可以在界面上查看公共變量池中所有的變量,并可直接往 公共變量池注入一個(gè)變量,這些變量可以在任何輸入數(shù)據(jù)的地方使用。如下對測試生成裝置10中的各單元的功能進(jìn)行詳細(xì)介紹1)如下具體描述接口掃描單元101、數(shù)據(jù)定義單元102和接口定義單元103的功 能接口掃描單元101,接收用戶輸入的被測試信息,根據(jù)被測試信息獲取待測試接口 信息,展現(xiàn)包含待測試接口信息的界面。具體的,如果用戶要測試的是本地接口,則用戶輸入的被測試信息即為被測試對 象,其可以是jar包,接口掃描單元101控制接口測試裝置展現(xiàn)該被測試對象包含的接口信 息;如果用戶要測試遠(yuǎn)程接口,則用戶輸入的被測試信息為遠(yuǎn)程服務(wù)器的IP地址,接口掃 描單元101通過該IP地址連接到遠(yuǎn)程服務(wù)器,得到該服務(wù)器上所有的服務(wù)名稱相關(guān)信息, 其中包括服務(wù)名稱的尋址信息,例如serverl :001。接口掃描單元101然后根據(jù)該IP地址 找到用于該遠(yuǎn)程服務(wù)器接口測試的被測試對象,該被測試對象可以是一 jar包,展現(xiàn)接口 信息及服務(wù)名稱相關(guān)信息,其中,接口信息包括各接口的參數(shù)類型。其中,上述接口參數(shù)類型包括接口參數(shù)類型對應(yīng)的包的路徑及其對應(yīng)的類的名 稱。接口定義單元103包括接口子單元1031、第一封裝子單元1032和第二執(zhí)行存儲 單元1033 ;接口定義單元103中的接口單元1031獲取用戶根據(jù)待測試接口信息所指定的 接口尋址信息、接口返回類型和接口參數(shù)類型,通知接口掃描單元101掃描該接口參數(shù)類 型的結(jié)構(gòu),其中,用戶輸入的接口參數(shù)類型是接口掃描單元101所展現(xiàn)的接口參數(shù)類型。由于在接口測試對“本地接口”調(diào)用時(shí),實(shí)際上在代碼中就是要調(diào)用某個(gè)類的某個(gè) 接口,例如QQ類的login接口 ;其中,接口的尋址信息就是如何調(diào)用接口的信息,圖3A為 提供用戶選定接口尋址信息的界面。第一種方式,用戶選擇了靜態(tài)方法,由于靜態(tài)方法不需要實(shí)例化類,系統(tǒng)默認(rèn)就是 用QQ作為尋址信息,所以不需要用戶輸入任何值。第二種方式,用戶選擇了單例,這種情況是類QQ本身要求是單例(即整個(gè)系統(tǒng)只 能有一個(gè)實(shí)例),編碼是這樣的,QQ qq = QQ. getlnstanceO.所以采用這種方式,需要QQ 提供靜態(tài)的方法getlnstance (),獲取其QQ實(shí)例。這種方式也不需要用戶輸入任何值。第三種方式,用戶選擇了無參數(shù)構(gòu)造,這種情況是類QQ類提供了無輸入?yún)?shù)的構(gòu) 造函數(shù),編碼是這樣的QQ qq = new QQ 0,這種方式無需要用戶輸入任何值。
第四種方 式,用戶選擇了自定義的方式,用戶需要寫入一段腳本,例如編碼方式 是=QQ qq = new QQ ( “ip,,,,,port,,),讓用戶可以輸入 request = new QQ ( “ ip”,“port”), 其中QQ需要寫完整的包路徑?;蛘呷绻幋a的方式為QQ qq = QQFactory. getQQO,則用 戶輸入request = new QQFactory. getQQO,其中QQFactory需要寫上完整的包路徑。對于遠(yuǎn)程接口,用戶根據(jù)展現(xiàn)的多個(gè)服務(wù)名稱相關(guān)信息,選擇服務(wù)名稱,并輸入該 服務(wù)名稱對應(yīng)的命令碼,其中,服務(wù)名稱及其對應(yīng)的命令碼組成接口的尋址信息。接口掃描單元101掃描接口參數(shù)類型的結(jié)構(gòu),具體的,使用反射的技術(shù)得到該接 口中的方法以及方法的參數(shù)類型等等。具體的,對于本地接口,掃描用戶輸入的被測試對象 中的接口參數(shù)類型的結(jié)構(gòu);對于遠(yuǎn)程接口,掃描遠(yuǎn)程服務(wù)器的IP地址所對應(yīng)的jar包中的 接口參數(shù)類型的結(jié)構(gòu)。數(shù)據(jù)定義單元102包括接口參數(shù)對象配置子單元1021和第一執(zhí)行存儲單元 1022,其中接口參數(shù)對象配置子單元1021分析接口掃描單元101的掃描結(jié)果,當(dāng)接口參數(shù) 類型為復(fù)雜對象類型時(shí),展現(xiàn)接口參數(shù)類型的結(jié)構(gòu),該接口參數(shù)類型包括基本對象類型,接 收用戶輸入的基本對象類型的配置信息(基本對象類型的配置信息為用戶輸入的基本對 象類型的各屬性值),或者接收用戶輸入的指示查找接口參數(shù)類型的配置信息的查找指令, 從本地共享單元獲取該接口參數(shù)類型的配置信息(接口參數(shù)類型的配置信息包括接口參 數(shù)類型中基本對象類型的配置信息,基本對象類型的配置信息包括基本對象類型的各屬性 值),根據(jù)基本對象類型的配置信息和接口參數(shù)類型的結(jié)構(gòu)配置接口參數(shù)對象;當(dāng)接口參 數(shù)類型為基本對象類型時(shí),接收用戶輸入的基本對象類型的配置信息(基本對象類型的配 置信息為用戶輸入的基本對象類型的各屬性值),或者接收用戶輸入的指示查找接口參數(shù) 類型的配置信息的查找指令,從本地共享單元106獲取該接口參數(shù)類型的配置信息(接口 參數(shù)類型的配置信息包括接口參數(shù)類型中基本對象類型的配置信息,基本對象類型的配置 信息包括基本對象類型的各屬性值),根據(jù)基本對象類型的配置信息配置接口參數(shù)對象。第 一執(zhí)行存儲單元1022用于在接收到用戶指示將接口參數(shù)對象的配置信息共享的指令后, 將接口參數(shù)對象的配置信息保存到共享單元106,以便后續(xù)封裝接口參數(shù)對象時(shí)供用戶使 用。具體的,當(dāng)接口參數(shù)類型為復(fù)雜對象類型時(shí),數(shù)據(jù)定義單元102控制接口測試裝 置以樹的形式展現(xiàn)該接口參數(shù)類型的結(jié)構(gòu),如圖3A所示。其中,基本對象類型的屬性包括業(yè)務(wù)名稱和默認(rèn)值,或者基本對象類型的屬性包 括業(yè)務(wù)名稱和輸入值范圍,基本對象類型的屬性還可以包括注釋等。具體的,業(yè)務(wù)名稱是 該基本對象在接口調(diào)用中表示的業(yè)務(wù)含義,其可以是Username,Password等信息,在后續(xù) 封裝測試用例時(shí)僅顯示具有業(yè)務(wù)名稱的基本對象類型,屏蔽接口參數(shù)對象的結(jié)構(gòu)特征,以 便方便測試用例的組裝和后續(xù)的維護(hù);默認(rèn)值是在基本對象類型沒有輸入值的情況下的取 值;注釋是用戶輸入的其他相關(guān)信息。當(dāng)接口參數(shù)類型為復(fù)雜對象類型時(shí),圖3B示出了該接口參數(shù)類型的結(jié)構(gòu),其 以樹的方式展現(xiàn)了接口參數(shù)類型的結(jié)構(gòu)。當(dāng)用戶需要為某個(gè)基本對象類型的屬性賦值 時(shí),單擊該基本對象類型,則數(shù)據(jù)定義單元102會控制接口測試裝置展示該基本對象類 型的屬性表,用戶在表中填入每個(gè)屬性的數(shù)值,數(shù)據(jù)定義單元102接收用戶輸入的基 本對象類型屬性的數(shù)值。圖3B對應(yīng)的采用Java語言實(shí)現(xiàn)的類圖如圖3C所示,其中,IDataNode 為Interface,表示其他 類的基類;ComplexNode,表示復(fù)雜對象類型,其包含 多個(gè)ConstructNode,多個(gè)MethodNode,多個(gè)成員對象類型,其中成員對象類型可以是 SimpleNode和ComplexNode,另外包含一些其他屬性;ConstructNode 表示構(gòu)造函數(shù)的節(jié) 點(diǎn),包含構(gòu)造函數(shù)的名稱,參數(shù)類型,其中參數(shù)類型可以是SimpleNode和ComplexNode ; MethodNode 表示普通方法的節(jié)點(diǎn)包含方法名稱,方法的返回類型,參數(shù)類型,其中參數(shù) 類型可以是 SimpleNode 和 ComplexNode。需要說明的是,當(dāng)接口參考類型為復(fù)雜對象類型時(shí),如果該接口參數(shù)類型為抽象 類或者interface類,而需要用戶將該接口參數(shù)類型改為可實(shí)例化的子類,例如,用戶點(diǎn)擊 接口參數(shù)類型(比如圖3A中作為樹根的復(fù)雜對象),數(shù)據(jù)定義單元102控制接口測試裝置 彈出一個(gè)類型更改界面,用戶在該界面上將該接口參數(shù)類型改為可實(shí)例化的子類。如果用戶需要復(fù)制某個(gè)普通方法,例如用戶需要復(fù)制普通方法1,則用戶在普通方 法1上點(diǎn)擊右鍵,則數(shù)據(jù)定義單元102控制接口測試裝置彈出該方法的屬性菜單,則用戶在 該菜單上選擇“copy”,接口測試裝置展現(xiàn)一個(gè)相同的普通方法1,則圖3A中會出現(xiàn)兩個(gè)普 通方法1。如果出現(xiàn)循環(huán)遞歸的情況,比如成員變量的葉子節(jié)點(diǎn)中包括自己,則數(shù)據(jù)定義單 元102會提示出錯(cuò)。接口定義單元103中的第一封裝子單元1033從數(shù)據(jù)定義單元102獲取接口參數(shù) 對象,封裝接口,展現(xiàn)接口界面供用戶查看,該接口包括接口尋址信息,接口返回類型對應(yīng) 的接口返回對象。第二執(zhí)行存儲單元1033接收到用戶用戶指示將接口參數(shù)類型的配置信 息共享的指令后,將接口參數(shù)類型的配置信息保存到共享單元,以便以后封裝接口參數(shù)對 象時(shí)供用戶使用;接口參數(shù)類型的配置信息包括接口參數(shù)類型中基本對象類型的配置信 肩、ο 其中,接口定義單元103提供的接口界面圖如圖4A所示,其對應(yīng)的采用Java語言 實(shí)現(xiàn)的類圖如圖4B所示。其中,IDataNode 為Interface,表示所有對象的基類,這里可以 是ComplexNode或者SimpleNode ;InterfaceNode,表示接口類型的節(jié)點(diǎn),其包含多個(gè)參數(shù) 對象,返回值,另外包含接口的尋址信息和其他的屬性。用戶可以通過接口界面重新為該接口參數(shù)對象中基本對象類型的屬性賦值,比如 可以修改業(yè)務(wù)名稱、默認(rèn)值、輸入值范圍和/或注釋。具體操作是用戶點(diǎn)擊接口參數(shù)對象, 接口定義單元103展現(xiàn)該接口參數(shù)對象的結(jié)構(gòu),用戶點(diǎn)擊某個(gè)基本對象類型,修改該基本 對象類型的業(yè)務(wù)名稱、接口調(diào)用時(shí)的默認(rèn)值、接口調(diào)用時(shí)輸入值范圍和/或注釋。2)、如下是測試邏輯封裝單元104功能的詳細(xì)介紹邏輯封裝單元104包括第一獲取子單元1041,第二獲取子單元1042,第二封裝子 單元1043、后置處理方法提供子單元1044、第三執(zhí)行存儲單元1045,其中,第一獲取子單元1041,用于接收用戶選擇接口定義單元102封裝的接口的指令, 從接口定義單元獲取接口;第二獲取子單元1042,用于接收用戶選擇共享單元106中接口的指令,從共享單 元中106獲取用戶選擇的接口 ;接收用戶選擇共享單元106中測試邏輯結(jié)構(gòu)的指令,從共享 單元106中獲取用戶選擇的測試邏輯結(jié)構(gòu);第二封裝子單元1043,用于接收用戶指定的多個(gè)邏輯封裝元素間的調(diào)用關(guān)系,按照該調(diào)用關(guān)系將多個(gè)邏輯封裝元素組成測試邏輯結(jié)構(gòu);其中,多個(gè)邏輯封裝元素包括從接口定義單元獲取的接口、從共享單元中獲取的接口和/或從共享單元中獲取的測試邏輯 結(jié)構(gòu)。假定上述多個(gè)邏輯封裝元素包括第一邏輯封裝元素和第二邏輯封裝元素,具體 的,第二封裝子單元1043提供邏輯封裝界面,根據(jù)用戶的指令將第一邏輯封裝元素的返回 結(jié)果保存為一個(gè)變量,根據(jù)用戶的指令設(shè)置變量的值作為第二邏輯封裝元素的輸入值,得 到測試邏輯結(jié)構(gòu)。需要說明的是,用戶可以通過邏輯關(guān)系運(yùn)算符號中的開始符號、過程符號和結(jié)束 符號指定邏輯封裝元素間的調(diào)用順序,比如用戶指定接口一、接口二、接口三順序調(diào)用。用戶可以通過邏輯關(guān)系運(yùn)算符號中的定時(shí)符號指定某個(gè)邏輯封裝元素的執(zhí)行時(shí) 間;用戶可以通過邏輯關(guān)系運(yùn)算符號中的循環(huán)符號指定某個(gè)邏輯封裝元素循環(huán)執(zhí)行, 并指定該邏輯封裝元素循環(huán)指定的次數(shù)等。假定多個(gè)邏輯封裝元素包括第一邏輯封裝元素、第二邏輯封裝元素和第三邏輯封 裝元素,具體的,第二封裝子單元1043根據(jù)用戶的指令將第一邏輯封裝元素的返回結(jié)果保 存為一個(gè)變量,利用分支符號及變量,將第一邏輯封裝元素分別與第二邏輯元素和第三邏 輯元素連接,具體的,可以設(shè)置變量值為真(1)時(shí)執(zhí)行第二邏輯封裝元素,變量值為假(0) 時(shí)執(zhí)行第三邏輯封裝元素。后置處理方法提供子單元1044,用于提供接口調(diào)用完成后的后置處理方法供用 戶選擇,比如getResult (),可以得到接口返回的結(jié)果;getParameter (intindex),得到接 口調(diào)用時(shí)的參數(shù)實(shí)例;public_put (String key, Object Value),往公共變量池加入變量; for(i in array)的循環(huán)語句;if(xxx)分支語句;測試邏輯封裝單元104并提供類似于 Junit框架中的Assert中的所有對比方法等等,這些方法可以讓用戶自己擴(kuò)展,后置處理 方法提供子單元提供編輯提示,方便用戶輸入。第三執(zhí)行存儲單元1045,用于接收用戶指示將測試邏輯結(jié)構(gòu)共享的指令,將測試 邏輯結(jié)構(gòu)保存到共享單元,以便以后封裝測試用例時(shí)供使用使用。其中,邏輯封裝界面可以如圖5A所示,其對應(yīng)的采用Java語言實(shí)現(xiàn)的類圖如圖 5B所示,其中,IDataNode 為Interface,表示簡單對象和復(fù)雜對象,即ComplexNode或者 SimpleNode0 LogicNode,表示所有邏輯控制節(jié)點(diǎn)的基類。StartLogicNode 邏輯開始節(jié)點(diǎn), 該節(jié)點(diǎn)為一個(gè)邏輯封裝的入口,框架會為其分配一個(gè)唯一的ID進(jìn)行標(biāo)示,該節(jié)點(diǎn)只允許添 加一個(gè)孩子節(jié)點(diǎn)。InterfaceExecuteNode,接口執(zhí)行節(jié)點(diǎn),該節(jié)點(diǎn)可以添加一個(gè)或者多個(gè)接 口,每個(gè)接口按順序執(zhí)行,該接口只能添加一個(gè)孩子節(jié)點(diǎn)。3)、如下是測試用例封裝單元105功能的詳細(xì)介紹測試用例封裝單元105包括第三獲取子單元1051、第四獲取子單元1052、第五獲 取子單元1053、測試數(shù)據(jù)獲取子單元1054、預(yù)期結(jié)果賦值單元1055、測試用例封裝子單元 1056、第四執(zhí)行存儲單元1057,第三獲取子單元1051,用于接收用戶選擇測試邏輯封裝單元104封裝的測試邏輯 結(jié)構(gòu)的指令,從測試邏輯封裝單元104獲取測試邏輯結(jié)構(gòu);第四獲取子單元1052,用于接收用戶選擇接口定義單元封裝的接口的指令,從接口定義單元獲取接口; 第五獲取子單元1053,用于接收用戶選擇共享單元106中接口的指令,從共享單 元106中獲取用戶選擇的接口 ;接收用戶選擇共享單元106中測試邏輯結(jié)構(gòu)的指令,從共享 單元106中獲取用戶選擇的測試邏輯結(jié)構(gòu);測試數(shù)據(jù)獲取子單元1054,用于獲取多個(gè)用例元素中基本對象類型對應(yīng)的測試數(shù) 據(jù);其中,多個(gè)用例元素包括從測試邏輯封裝單元獲取的測試邏輯結(jié)構(gòu)、從共享單元中獲取 的接口和/或從共享單元中獲取的測試邏輯結(jié)構(gòu)。具體的獲取測試數(shù)據(jù)的方式包括但不限于如下幾種方式第一種方式設(shè)置用戶從公共變量池中選定的變量的值作為用例元素中基本對象 類型對應(yīng)的測試數(shù)據(jù)。具體的,用戶從公共變量池中選定變量,針對該基本對象類型輸入以 $開始的變量名稱,測試用例封裝單元105接收到用戶輸入的變量名稱后,設(shè)置該變量的值 為基本對象類型對應(yīng)的測試數(shù)據(jù)。第二種方式接收用戶直接輸入的具體數(shù)值為測試數(shù)據(jù)。第三種方式測試數(shù)據(jù)獲取子單元提供常用賦值方法供用戶選擇,常用方法可以 是得到隨機(jī)的數(shù)字的方法getRandNum();字符串轉(zhuǎn)byte數(shù)據(jù)的方法,Str2byte (String str)等等。如果用戶沒有進(jìn)行賦值,則測試數(shù)據(jù)獲取子單元1054采用默認(rèn)值為測試數(shù)據(jù)。預(yù)期結(jié)果賦值單元1055,用于根據(jù)用戶的指令設(shè)置測試用例的預(yù)期結(jié)果值。測試用例封裝子單元1056,用于根據(jù)多個(gè)用例元素(此處多個(gè)用例元素為一個(gè)用 例實(shí)體)及其中各基本對象類型對應(yīng)的測試數(shù)據(jù),和已接收的用戶輸入的用例名稱、級別、 描述和類型屬性,和預(yù)期結(jié)果值,封裝測試用例。其中用例名稱、級別、描述、類型屬性主要 為用戶在維護(hù)過程中使用,方便閱讀接口完成的功能。用例級別與用例類型可以在用例調(diào) 度中使用(按用例級別運(yùn)行,按用例類型運(yùn)行)。第四執(zhí)行存儲單元1057,用于接收用戶指示將測試用例共享的指令后,將測試用 例保存到共享單元中。測試用例封裝單元105還包括基本對象信息更新子單元;基本對象信息更新子單元,用于接收用戶對用于組成用例實(shí)體的元素中基本對象 類型的屬性值修改的指令,保存用戶為基本對象類型的屬性賦予的新值。實(shí)現(xiàn)可以在封裝 測試用例時(shí)修改基本對象類型屬性值的目的。測試用例封裝單元105還包括自動生成用例子單元;自動生成用例子單元,用于根據(jù)已經(jīng)封裝的測試用例和測試用例中基本對象類型 的輸入值范圍,使用二元正交算法生成測試用例。實(shí)現(xiàn)可以自動生成用例的目的。例如,假定有已配置好一個(gè)測試用例,該測試用例是買東西,給錢,找錢;這里的參數(shù)有什么東西,買多少,給多少錢;預(yù)期是找回多少錢;其接口調(diào)用時(shí)能使用的輸入值為什么東西蘋果、雪梨、電視機(jī)買多少1、2、1000給多少錢10、20、100
使用自動生成用例功能,就會自動組合生成以下的用例買1個(gè)蘋果,給20塊錢,預(yù)期找回多少買1000臺電視機(jī),給100塊,預(yù)期被告訴不夠錢,等等測試用例包括兩類節(jié)點(diǎn)特性節(jié)點(diǎn)和用例節(jié)點(diǎn)(即上述封裝的測試用例),其中特 性節(jié)點(diǎn)是包含一個(gè)或者多個(gè)用例節(jié)點(diǎn)和特性節(jié)點(diǎn)。測試用例封裝單元105還可以根據(jù)用戶 的指示將多個(gè)測試用例劃到一個(gè)特性節(jié)點(diǎn),以便后續(xù)在維護(hù)時(shí)方便用戶操作。測試用例封裝單元105控制接口測試裝置展現(xiàn)的用例封裝界面可以如圖6A所示, 假定用戶在該界面上選擇的樹根用例為一個(gè)特性節(jié)點(diǎn),測試用例封裝單元105把“特性屬 性”頁簽激活,并以表的方式展現(xiàn)該特性節(jié)點(diǎn)的直接孩子節(jié)點(diǎn),比如其包含特性節(jié)點(diǎn)1,特性 節(jié)點(diǎn)2,用例節(jié)點(diǎn)3,并在表的下方顯示統(tǒng)計(jì)信息(有多少個(gè)特性節(jié)點(diǎn),多少個(gè)用例節(jié)點(diǎn)); 當(dāng)用戶點(diǎn)擊特性節(jié)點(diǎn)2,測試用例封裝單元105把“特性屬性”頁簽激活,并以表的展示特性 節(jié)點(diǎn)2的直接孩子節(jié)點(diǎn),比如其包含用例節(jié)點(diǎn)1和用例節(jié)點(diǎn)2,并在表的下方顯示統(tǒng)計(jì)信息; 用戶點(diǎn)擊用例節(jié)點(diǎn)1,測試用例封裝單元105則把“用例屬性”頁簽激活,并展示用例屬性, 包括用例名稱,用例級別,用例描述,用例類型,其中這些信息可接受用戶修改。用戶可以點(diǎn) 擊“用例實(shí)體”頁簽,測試用例封裝單元105以表的方式展示用例需要調(diào)用的用例元素,如 接口和/或測試邏輯結(jié)構(gòu),當(dāng)用戶選擇了一個(gè)具體的測試邏輯結(jié)構(gòu),假定用戶點(diǎn)擊“登陸” 哪一行,則在圖中下方的“用例操作區(qū)域”的“參數(shù)賦值”頁簽就會激活,用戶就可以輸入用 例的輸入值了。用戶也可以點(diǎn)擊“結(jié)果處理”,則用戶可以設(shè)定接口測試的預(yù)期結(jié)果值,或者 保存一些結(jié)果到公共變量池等處理動作。需要說明的是,這里不會展示接口參數(shù)對象的樹型結(jié)構(gòu),這里使用扁平化的方式 展示,即使用表展示接口參數(shù)對象中業(yè)務(wù)名稱不為空的基本對象,展示的字段信息有業(yè)務(wù) 名稱,類型,默認(rèn)值,輸入值,輸入值范圍,注釋。這里不顯示接口參數(shù)對象結(jié)構(gòu)的好處是把 不相關(guān)的信息屏蔽掉,方便用戶操作,用戶可以直接在“輸入值”的字段完成用例的測試數(shù) 據(jù)輸入。同時(shí)這里也提供入口跳轉(zhuǎn)到數(shù)據(jù)定義單元查看接口參數(shù)對象的詳細(xì)信息,用戶只 需要點(diǎn)擊右鍵即可彈出菜單,選擇“l(fā)ocation”即可跳轉(zhuǎn)。其中,圖6A對應(yīng)的采用Java語言實(shí)現(xiàn)的類圖如圖6B所示,其中,ICaseNode 為Interface,表示用例節(jié)點(diǎn)與特性節(jié)點(diǎn)的基類;StartLogicNode,表示所有邏輯封 裝的開始節(jié)點(diǎn);UserCaseNode:表示用例節(jié)點(diǎn),該節(jié)點(diǎn)包含一個(gè)或者多個(gè)邏輯封裝, 即StartLogicNode ;FeatureNode,表示特性節(jié)點(diǎn),該節(jié)點(diǎn)包含多個(gè)ICaseNode,即特性 FeatureNode 禾口 UserCaseNode0優(yōu)選的,該接口測試裝置可以連接到一臺獨(dú)立的服務(wù)器上,在該服務(wù)器上共享自 己已有的配置(比如共享單元中的內(nèi)容),以便其他接口測試裝置使用。 本發(fā)明實(shí)施例采用第三方組件Hibernate保存模型數(shù)據(jù)到數(shù)據(jù)庫中,當(dāng)接口測試 裝置重新啟動時(shí),先從數(shù)據(jù)庫獲取數(shù)據(jù),建立數(shù)據(jù)模型,然后再在界面上顯示,方便用戶操 作,這樣用戶就不用在重新啟動時(shí)執(zhí)行重新輸入被測試信息供接口掃描單元進(jìn)行掃描等操 作了。優(yōu)選的,測試用例執(zhí)行模塊20還包括用例調(diào)度單元203,其中,該用例調(diào)度單元可以提供多個(gè)測試用例供用戶選擇,將用戶選擇的多個(gè)測試用例 組成測試實(shí)例,后續(xù)用例執(zhí)行單元201會執(zhí)行測試實(shí)例;優(yōu)選的,該用例調(diào)度單元還用于控制接口測試裝置展現(xiàn)用例調(diào)度界面,接收用戶在用例調(diào)度界面中指定的測試實(shí)例的運(yùn)行規(guī) 則;用例執(zhí)行單元201將根據(jù)用戶指定的測試實(shí)例的運(yùn)行規(guī)則,運(yùn)行測試實(shí)例。其中,測試 實(shí)例的運(yùn)行規(guī)則即為該測試實(shí)例中每個(gè)測試用例的運(yùn)行規(guī)則。具 體的,用例調(diào)度單元將用戶指定的測試實(shí)例的運(yùn)行規(guī)則導(dǎo)出到xml文件中,用 例執(zhí)行單元201加載xml文件中的測試實(shí)例的運(yùn)行規(guī)則,然后按照測試用例的運(yùn)行規(guī)則運(yùn) 行測試用例。測試實(shí)例的運(yùn)行規(guī)則包括但不限于如下幾種規(guī)則循環(huán)運(yùn)行策略每個(gè)測試用例連續(xù)運(yùn)行X次,并暫停y秒,然后所有測試用例重復(fù) 運(yùn)行ζ次;定時(shí)運(yùn)行策略在XX: XX開始運(yùn)行測試實(shí)例;用例篩選策略用例特性名稱、用例名稱、用例級別,用例類型滿足條件,該測試用 例才能運(yùn)行。其中,用例調(diào)度界面可以使用如圖7A所示,用戶可以選擇一些測試用例并設(shè)定 測試用例的運(yùn)行規(guī)則,組成了一個(gè)測試實(shí)例(如圖中左邊的樹形結(jié)構(gòu))。用戶可以組織 多個(gè)測試實(shí)例供不同的場景使用。圖7A對應(yīng)的采用Java語言實(shí)現(xiàn)的類圖如圖7B所 示。其中,AInvoker 為抽象類,表示用所有調(diào)度器的基類;UserCaseNode,表示用例節(jié) 點(diǎn);UserCaseNodelnvoker 表示調(diào)用一個(gè)或者多個(gè)測試用例的調(diào)度器,即測試用例的運(yùn) 行規(guī)則;LevelInvoker 表示按級別的調(diào)度器;Timelnvoker 表示定時(shí)啟動的調(diào)度器; RepeatStrategyInvoker 表示重復(fù)調(diào)用的調(diào)器。其中,除了 UserCaseNodelnvoker調(diào)度器 是只能執(zhí)行測試用例外,其他的各個(gè)調(diào)度器均可以嵌套使用(比如,可以定時(shí)啟動一個(gè)重 復(fù)執(zhí)行測試用例的調(diào)度器)。如果需要擴(kuò)展調(diào)度器,只需要繼承AInvoker即可。測試用例執(zhí)行單元201的功能具體包括如下測試用例執(zhí)行單元201具體根據(jù)測試數(shù)據(jù)(即測試用例封裝單元獲取的用戶指定 的測試數(shù)據(jù))及測試邏輯結(jié)構(gòu)(或接口),生成腳本語言(JavaScript或者Python),然后使 用Java的腳本引擎執(zhí)行腳本語言得到接口的參數(shù)實(shí)例;根據(jù)接口的尋址信息,使用java的 反射技術(shù)調(diào)用接口,然后生成結(jié)果判斷腳本(JavaScript或者Python),使用Java的腳本弓| 擎執(zhí)行結(jié)果判斷腳本來判斷接口測試是否成功,具體的,把接口執(zhí)行結(jié)果傳入到腳本引擎, 然后使用腳本引擎執(zhí)行結(jié)果判斷腳本,驗(yàn)證接口測試是否成功。本發(fā)明實(shí)施例在接口參數(shù)類型為復(fù)雜對象類型時(shí),自動解析并展現(xiàn)該接口參數(shù)類 型的結(jié)構(gòu),使用戶在構(gòu)造接口的參數(shù)對象時(shí)不需要寫入代碼,而僅在對象構(gòu)造界面輸入基 本對象類型的各屬性值就可以了,該測試裝置同時(shí)提供邏輯封裝界面供用戶指定多個(gè)接口 之間的調(diào)用關(guān)系,使在集成測試環(huán)境中,不需要用戶寫入任何代碼,而是僅需要用戶根據(jù)界 面的提示信息進(jìn)行選擇,實(shí)現(xiàn)集成測試場景中對多個(gè)接口進(jìn)行測試;同時(shí)在用戶增加/刪 除/修改用例時(shí)都不需要變更測試代碼,方便用戶操作,節(jié)省接口測試的時(shí)間開銷;進(jìn)一 步,采用圖像化的方式供用戶配置測試用例及測試數(shù)據(jù),方便用戶操作,從而可以實(shí)現(xiàn)任何 系統(tǒng)的集成測試;進(jìn)一步,共享單元可以共享接口的參數(shù)對象、接口、測試邏輯結(jié)構(gòu)、用例 等,方便多人同時(shí)進(jìn)行接口測試。參閱圖8,本發(fā)明另一實(shí)施例提供一種接口測試裝置,其與上述實(shí)施例的區(qū)別在 于,測試用例生成模塊10中不包括測試邏輯封裝單元104,該接口測試裝置可用于軟件的單元測試,如下簡單介紹該接口測試裝置中的部分單元功能接口掃描單元101,用于根據(jù)接口定義單元獲取的接口參數(shù)類型,掃描被測試對 象;數(shù)據(jù)定義單元102,用于分析接口掃描單元對被測試對象的掃描結(jié)果,當(dāng)接口參數(shù) 類型為復(fù)雜對象類型時(shí),展現(xiàn)接口參數(shù)類型的結(jié)構(gòu),該接口參數(shù)類型包括基本對象類型,獲 取用戶指定的基本對象類型的配置信息,根據(jù)基本對象類型的配置信息和接口參數(shù)類型的 結(jié)構(gòu)配置接口參數(shù)對象;當(dāng)接口參數(shù)類型為基本對象類型時(shí),獲取用戶指定的基本對象類 型的配置信息,根據(jù)基本對象類型的配置信息配置接口參數(shù)對象;接口定義單元103,用于獲取用戶指定的接口尋址信息、接口返回類型和接口參數(shù) 類型,封裝接口,該接口包括接口尋址信息,接口返回類型對應(yīng)的接口返回對象,數(shù)據(jù)定義 單元102配置的接口參數(shù)對象;測試用例封裝單元105,用于獲取用戶選擇的用例元素,利用用例元素中基本對象 類型的配置信息獲取用例元素中各基本對象類型對應(yīng)的測試數(shù)據(jù),利用用例元素及其中各 基本對象類型對應(yīng)的測試數(shù)據(jù)封裝測試用例;其中,用戶選擇的用例元素包括接口定義單 元封裝的接口;用例執(zhí)行單元201,用于運(yùn)行測試用例封裝單元封裝的測試用例;報(bào)告生成單元202,用于根據(jù)測試用例的運(yùn)行結(jié)果,生成測試報(bào)告。其各單元的功能與前述實(shí)施例相似,在此不再贅述。該實(shí)施例展現(xiàn)接口參數(shù)類型 的結(jié)構(gòu)(接口參數(shù)類型包括基本對象類型),并獲取用戶指定的基本對象類型的配置信息, 并利用基本對象類型的配置信息獲取各基本對象類型對應(yīng)的測試數(shù)據(jù),從而封裝測試用 例,使用戶在構(gòu)造測試用例的過程時(shí)不需要寫入代碼,提高了測試效率。對于上述實(shí)施例中的數(shù)據(jù)定義單元、接口定義單元、測試邏輯封裝單元、測試用例 封裝單元以及共享單元和公共變量池,根據(jù)用戶的輸入信息,均可以建立對應(yīng)的數(shù)據(jù)模型, 然后將模型數(shù)據(jù)保存到數(shù)據(jù)庫中,當(dāng)接口測試裝置重新啟動后,先從數(shù)據(jù)庫獲取模型數(shù)據(jù), 這些模型數(shù)據(jù)通過轉(zhuǎn)換器,使用GUI的方式展示給用戶,方便用戶操作。參閱圖9A,本發(fā)明一實(shí)施例提供一種接口測試方法,該方法具體包括901A、根據(jù)用戶指定的接口參數(shù)類型掃描被測試對象;該步驟可以由接口掃描單元執(zhí)行。902A、分析對被測試對象的掃描結(jié)果,展現(xiàn)接口參數(shù)類型的結(jié)構(gòu),其中,該接口參 數(shù)類型包括基本對象類型,獲取用戶指定的基本對象類型的配置信息;該步驟可以由數(shù)據(jù)定義單元執(zhí)行。具體的,數(shù)據(jù)定義單元可以通過如下方式獲取 用戶指定的基本對象類型的配置信息第一種方式為數(shù)據(jù)定義單元接收用戶輸入的基本 對象類型的配置信息;第二種方式為數(shù)據(jù)定義單元接收用戶輸入的指示查找接口參數(shù)類 型的配置信息的查找指令后,從本地的共享單元查找該接口參數(shù)類型的配置信息903A、獲取用戶選擇的用例元素,利用用例元素中基本對象類型的配置信息,獲取 用例元素中各基本對象類型對應(yīng)的測試數(shù)據(jù),利用用例元素及其中各基本對象類型對應(yīng)的 測試數(shù)據(jù)封裝測試用例;該步驟可以由測試用例封裝單元執(zhí)行,其中,獲取用例元素中各基本對象類型對 應(yīng)的測試數(shù)據(jù)具體可以通過如下方式實(shí)現(xiàn)展現(xiàn)用例元素中具有配置信息的基本對象類型,根據(jù)用戶的指令從公共變量池中查找變量,設(shè)置變量的值作為用戶指定的基本對象類 型所對應(yīng)的測試數(shù)據(jù)。還可以通過其他方式獲取測試數(shù)據(jù),具體參見上述裝置實(shí)施例中對 測試用例封裝單元的描述。904A、運(yùn)行測試用例,生成測試報(bào)告。本發(fā)明實(shí)施例展現(xiàn)接口參數(shù)類型的結(jié)構(gòu)(接口參數(shù)類型包括基本對象類型),并 獲取用戶指定的基本對象類型的配置信息,在封裝測試用例時(shí),利用基本對象類型的配置 信息獲取各基本對象類型對應(yīng)的測試數(shù)據(jù),從而封裝測試用例,使用戶在構(gòu)造測試用例的 過程時(shí)不需要寫入代碼,提高了測試效率。參閱圖9B,本發(fā)明另一實(shí)施例提供一種接口測試方法,該方法可適用于軟件的單 元測試,該方法具體包括901B、接口測試裝置獲取用戶指定的接口尋址信息、接口返回類型和接口參數(shù)類 型;該步驟可以由接口定義單元執(zhí)行。在該步驟之前,接口測試裝置中的接口掃描單元會接收用戶輸入的被測試信息, 根據(jù)被測試信息獲取待測試接口信息,展現(xiàn)包含待測試接口信息的界面,然后接口定義單 元接收用戶根據(jù)待測試接口信息所輸入的接口尋址信息、接口返回類型和接口參數(shù)類型, 并通知接口掃描單元101掃描該接口參數(shù)類型的結(jié)構(gòu)。其中,待測試接口可以是本地接口也可以是遠(yuǎn)程接口,接口測試裝置針對不同的 接口類型所進(jìn)行的處理方式見前面裝置部分的描述,在此不再贅述。902B、接口測試裝置根據(jù)接口參數(shù)類型,掃描被測試對象。該步驟可以由接口掃描單元執(zhí)行。對于本地接口,該步驟是掃描用戶輸入的被測試對象中的接口參數(shù)類型的結(jié)構(gòu); 對于遠(yuǎn)程接口,該步驟是掃描遠(yuǎn)程服務(wù)器的IP地址所對應(yīng)的jar包中的接口參數(shù)類型的結(jié) 構(gòu)。903B、分析接口對被測試對象的掃描結(jié)果,當(dāng)接口參數(shù)類型為復(fù)雜對象類型時(shí),展 現(xiàn)接口參數(shù)類型的結(jié)構(gòu),該接口參數(shù)類型包括基本對象類型,獲取用戶指定的基本對象類 型的配置信息,根據(jù)基本對象類型的配置信息和接口參數(shù)類型的結(jié)構(gòu)配置接口參數(shù)對象; 當(dāng)接口參數(shù)類型為基本對象類型時(shí),獲取用戶指定的基本對象類型的配置信息,根據(jù)基本 對象類型的配置信息配置接口參數(shù)對象。該步驟可以由數(shù)據(jù)定義單元執(zhí)行。其中,基本對象類型的屬性包括業(yè)務(wù)名稱、默認(rèn)值、輸入值范圍。其中,獲取用戶指定的基本對象類型的配置信息具體可以有如下實(shí)現(xiàn)方式第一 種方式為接收用戶輸入的基本對象類型的配置信息;第二種方式為接收用戶輸入的指 示查找接口參數(shù)類型的配置信息的查找指令;在本地查找該接口參數(shù)類型的配置信息,如 果本地沒有找到該接口參數(shù)類型的配置信息,向中央控制器查詢該接口參數(shù)類型的配置信 息,其中,該接口參數(shù)類型的配置信息包括接口參數(shù)類型的基本對象類型的配置信息。 在配置接口參數(shù)對象之后,該步驟還可以接收用戶輸入的指示將接口參數(shù)對象的 配置信息共享的指令后,將接口參數(shù)對象的配置信息保存到共享單元以便以后配置接口參 數(shù)對象時(shí)供用戶使用。
904B、接口測試裝置封裝接口,該接口包括接口尋址信息,接口返回類型對應(yīng)的 接口返回對象,所配置的接口參數(shù)對象。該步驟可以由接口定義單元執(zhí)行。該步驟還可以接收用戶指示將接口共享的指 令,保存接口以便以后封裝測試用例時(shí)作為用戶選擇的用例元素。905B、獲取用戶選擇的用例元素,利用用例元素中基本對象類型的配置信息,獲取 用例元素中各基本對象類型對應(yīng)的測試數(shù)據(jù),利用用例元素及其中各基本對象類型對應(yīng)的 測試數(shù)據(jù)封裝測試用例;其中,用戶選擇的用例元素包括接口。該步驟可以由測試用例封裝單元執(zhí)行。該步驟中還可以接收用戶指示將測試用例共享的指令,保存測試用例到共享單元 中。906B、運(yùn)行測試用例,生成測試報(bào)告。該步驟由用例調(diào)度單元、用例執(zhí)行單元和報(bào)告生成單元執(zhí)行。具體的,該接口測試裝置中的用例調(diào)度單元提供多個(gè)測試用例供用戶選擇,將用 戶選擇的多個(gè)測試用例組成測試實(shí)例,并控制接口測試裝置展現(xiàn)用例調(diào)度界面,接收用戶 在用例調(diào)度界面中指定的測試實(shí)例的運(yùn)行規(guī)則,接口測試裝置中的用例執(zhí)行單元將根據(jù)用 戶指定的測試實(shí)例的運(yùn)行規(guī)則,運(yùn)行測試實(shí)例。其中,測試實(shí)例的運(yùn)行規(guī)則即為該測試實(shí)例 中每個(gè)測試用例的運(yùn)行規(guī)則。本發(fā)明實(shí)施例在接口參數(shù)類型為復(fù)雜對象類型時(shí),自動解析并展現(xiàn)該接口參數(shù)類 型的結(jié)構(gòu)(該接口參數(shù)類型包括基本對象類型),并獲取用戶指定的基本對象類型的配置 信息,使用戶在構(gòu)造接口參數(shù)對象時(shí)不需要寫入代碼,并利用基本對象類型的配置信息獲 取各基本對象類型對應(yīng)的測試數(shù)據(jù),從而封裝測試用例,使用戶在構(gòu)造測試用例的過程時(shí) 都不需要寫入代碼,提高了測試效率。參閱圖9C,本發(fā)明另一實(shí)施例提供一種接口測試方法,該方法可適用于軟件的集 成測試,該方法具體包括901C-904C與901B-904B相同,在此不再贅述。905C、獲取用戶選擇的多個(gè)邏輯封裝元素,按照用戶指定的調(diào)用關(guān)系將多個(gè)邏輯 封裝元素封裝成測試邏輯結(jié)構(gòu),多個(gè)邏輯封裝元素包括所封裝的接口。該步驟可以由測試邏輯封裝單元執(zhí)行。具體的,接口測試裝置提供邏輯封裝界面,根據(jù)用戶的指令將第一邏輯封裝元素 的返回結(jié)果保存為一個(gè)變量,利用該變量和邏輯關(guān)系運(yùn)算符號將第一邏輯封裝元素與第二 邏輯封裝元素連接,將多個(gè)邏輯封裝元素封裝成一個(gè)測試邏輯結(jié)構(gòu),其中,第一邏輯封裝元 素和第二邏輯封裝元素可以是已封裝的接口或者測試封裝結(jié)構(gòu)。906C、獲取用戶選擇的用例元素,利用用例元素中基本對象類型的配置信息,獲取 用例元素中各基本對象類型對應(yīng)的測試數(shù)據(jù),利用用例元素及其中各基本對象類型對應(yīng)的 測試數(shù)據(jù)封裝測試用例;其中用戶選擇的用例元素包括測試邏輯結(jié)構(gòu)。該步驟可以由測試用例封裝單元執(zhí)行。其中,可以有三種測試數(shù)據(jù)獲取方式,具體見前面裝置部分的相應(yīng)描述。該步驟具體是根據(jù)多個(gè)用于組成用例實(shí)體的元素及其中各基本對象對應(yīng)的測試 數(shù)據(jù),和已接收的用戶輸入的用例名稱、級別、描述和類型屬性,和預(yù)期結(jié)果值,封裝測試用例。其中用例名稱、級別、描述、類型屬性主要為用戶在維護(hù)過程中使用,方便閱讀接口完 成的功能。用例級別與用例類型可以在用例調(diào)度中使用(按用例級別運(yùn)行,按用例類型運(yùn) 行),用例實(shí)體可以包含一個(gè)或者多個(gè)測試邏輯結(jié)構(gòu)或者接口。907C、接口測試裝置運(yùn)行測試用例,生成測試報(bào)告。該步驟由用例調(diào)度單元、用例執(zhí)行單元和報(bào)告生成單元執(zhí)行。具體的,該接口測試裝置中的用例調(diào)度單元提供多個(gè)測試用例供用戶選擇,將用 戶選擇的多個(gè)測試用例組成測試實(shí)例,并控制接口測試裝置展現(xiàn)用例調(diào)度界面,接收用戶 在用例調(diào)度界面中指定的測試實(shí)例的運(yùn)行規(guī)則,接口測試裝置中的用例執(zhí)行單元將根據(jù)用 戶指定的測試實(shí)例的運(yùn)行規(guī)則,運(yùn)行測試實(shí)例。其中,測試實(shí)例的運(yùn)行規(guī)則即為該測試實(shí)例 中每個(gè)測試用例的運(yùn)行規(guī)則。本發(fā)明實(shí)施例在接口參數(shù)類型為復(fù)雜對象類型時(shí),自動解析并展現(xiàn)該接口參數(shù)類 型的結(jié)構(gòu)(該接口參數(shù)類型包括基本對象類型),并獲取用戶指定的基本對象類型的配置 信息,使用戶在構(gòu)造接口的參數(shù)對象時(shí)不需要寫入代碼,該接口測試裝置同時(shí)根據(jù)用戶指 定的多個(gè)接口之間的調(diào)用關(guān)系將多個(gè)接口封裝成測試邏輯結(jié)構(gòu),使在集成測試環(huán)境中,不 需要用戶寫入任何代碼,而是僅需要用戶根據(jù)界面的提示信息進(jìn)行選擇,實(shí)現(xiàn)集成測試場 景中對多個(gè)接口進(jìn)行測試;同時(shí)在用戶增加/刪除/修改用例時(shí)都不需要變更測試代碼,方 便用戶操作,節(jié)省接口測試的時(shí)間開銷。進(jìn)一步,采用圖像化的方式供用戶配置測試用例及 測試數(shù)據(jù),方便用戶操作,從而可以實(shí)現(xiàn)任何系統(tǒng)的集成測試。參閱圖10,本發(fā)明實(shí)施例提供一種接口測試方法,該方法具體包括1001、接口測試裝置接收用戶輸入的被測試信息,根據(jù)被測試信息獲取待測試接 口信息,展現(xiàn)包含待測試接口信息的界面。1002、接口測試裝置獲取用戶指定的接口尋址信息,接口參數(shù)類型及接口返回類 型。其中,用戶是根據(jù)待測試接口信息指定接口尋址信息,接口參數(shù)類型及接口返回類型 的。1003、根據(jù)接口參數(shù)類型,掃描被測試對象,分析接口對被測試對象的掃描結(jié)果, 當(dāng)接口參數(shù)類型為復(fù)雜對象類型時(shí),展現(xiàn)接口參數(shù)類型的結(jié)構(gòu),該接口參數(shù)類型的結(jié)構(gòu)由 基本對象類型組成,接收用戶輸入的指示查找該接口參數(shù)類型的配置信息的查找指令,查 找本地的共享單元中是否有該接口參數(shù)類型的配置信息,如果否,執(zhí)行1004,如果是,執(zhí)行 1009。1004、到中央控制器查找該接口參數(shù)類型的配置信息,如果沒有找到,執(zhí)行1005, 如果找到,執(zhí)行1008。1005、提示用戶輸入該接口參數(shù)類型的配置信息。其中,接口參數(shù)類型的配置信息包括該接口參數(shù)類型中各基本參數(shù)類型的配置信 息,基本參數(shù)類型的配置信息包括基本參數(shù)類型的各屬性值。1006、提示用戶是否共享該接口參數(shù)類型的配置信息,如果接收到用戶指示共享 的指令,執(zhí)行1007,否則,執(zhí)行1009。1007、將該接口參數(shù)類型的配置信息保存到本地的共享單元,本地的共享單元將 該接口參數(shù)類型的配置信息發(fā)送到中央控制器,執(zhí)行1009。1008、從中央控制器中獲取該接口參數(shù)類型的配置信息。
1009、根據(jù)接口參數(shù)類型的配置信息、接口參數(shù)類型的結(jié)構(gòu)和接口尋址信息等,封 裝接口。1010、當(dāng)用戶需要測試多個(gè)接口時(shí),接收到用戶輸入的指示增加新接口的指令, 在本地的共享單元中查找是否有用戶指示增加的接口,如果否,執(zhí)行1011,如果是,執(zhí)行 1015。1011、到中央控制器查找是否有用戶指示增加的接口,如果沒有,執(zhí)行1012,如果 有,執(zhí)行1015。1012、配置新接口。1013、提示用戶是否需要共享該新的接口,如果用戶指示共享該接口,則執(zhí)行 1014,否則,執(zhí)行1016。1014、將該接口放入本地的共享單元,本地的共享單元將接口發(fā)送給中央控制器 保存,執(zhí)行1016。1015、從中央控制器中獲取用戶指示增加的接口。1016、接收用戶指定的多個(gè)接口間的調(diào)用關(guān)系,按照調(diào)用關(guān)系將多個(gè)接口封裝成 測試邏輯結(jié)構(gòu)。1017、接收到用戶輸入的指示增加新測試邏輯結(jié)構(gòu)的指令,在本地的共享單元中 查找是否有用戶指示增加的新測試邏輯結(jié)構(gòu),如果否,執(zhí)行1018 ;如果是,執(zhí)行1023。1018、到中央控制器查找是否有用戶指示增加的新測試邏輯結(jié)構(gòu),如果沒有,執(zhí)行 1019,否則執(zhí)行1022。1019、配置新的測試邏輯結(jié)構(gòu)。1020、提示用戶是否需要共享該新的測試邏輯結(jié)構(gòu),如果用戶指示共享,則執(zhí)行 1021,如果否執(zhí)行1023。1021、將該新的測試邏輯結(jié)構(gòu)放入本地的共享單元,本地的共享單元將新的測試 邏輯結(jié)構(gòu)發(fā)送給中央控制器保存,執(zhí)行1023。1022、從中央控制器中獲取用戶指示增加的測試邏輯結(jié)構(gòu)。1023、獲取測試邏輯結(jié)構(gòu)中各基本對象對應(yīng)的測試數(shù)據(jù),根據(jù)測試邏輯結(jié)構(gòu)和各 基本對象對應(yīng)的測試數(shù)據(jù),封裝測試用例。1024、展現(xiàn)用例調(diào)度配置界面,接收用戶在用例調(diào)度配置界面中指定的測試用例 運(yùn)行規(guī)則,根據(jù)用戶指定的測試用例運(yùn)行規(guī)則,運(yùn)行測試用例。1025、根據(jù)測試用例的運(yùn)行結(jié)果生成測試報(bào)告。該實(shí)施例使用戶在集成測試環(huán)境中,不需要用戶寫入任何代碼,而是僅需要用戶 根據(jù)界面的提示信息進(jìn)行選擇,實(shí)現(xiàn)集成測試場景中對多個(gè)接口進(jìn)行測試;同時(shí)在用戶增 加/刪除/修改用例時(shí)都不需要變更測試代碼,方便用戶操作,節(jié)省接口測試的時(shí)間開銷; 進(jìn)一步,采用圖像化的方式供用戶配置測試用例及測試數(shù)據(jù),方便用戶操作,從而可以實(shí)現(xiàn) 任何系統(tǒng)的集成測試;進(jìn)一步,共享單元可以共享接口的參數(shù)對象、接口、測試邏輯結(jié)構(gòu)、用 例等,方便多人同時(shí)進(jìn)行接口測試。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以 通過程序來指令相關(guān)的硬件完成,該程序可以存儲于一種計(jì)算機(jī)可讀存儲介質(zhì)中,例如只 讀存儲器,磁盤或光盤等。
以上對本發(fā)明實(shí)施例所提供的接口測試方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用 了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解 本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具 體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明 的限制。
權(quán)利要求
1.一種接口測試裝置,其特征在于,包括接口掃描單元、數(shù)據(jù)定義單元、測試用例封 裝單元、用例執(zhí)行單元和報(bào)告生成單元,所述接口掃描單元,用于根據(jù)用戶指定的接口參數(shù)類型掃描被測試對象; 所述數(shù)據(jù)定義單元,用于分析所述接口掃描單元對所述被測試對象的掃描結(jié)果,展現(xiàn) 所述接口參數(shù)類型的結(jié)構(gòu),所述接口參數(shù)類型包括基本對象類型,獲取用戶指定的基本對 象類型的配置信息;所述測試用例封裝單元,用于獲取用戶選擇的用例元素,利用所述數(shù)據(jù)定義單元獲取 的用例元素中基本對象類型的配置信息,獲取所述用例元素中各基本對象類型對應(yīng)的測試 數(shù)據(jù),利用所述用例元素及其中各基本對象類型對應(yīng)的測試數(shù)據(jù)封裝測試用例; 所述用例執(zhí)行單元,用于運(yùn)行測試用例封裝單元封裝的測試用例; 所述報(bào)告生成單元,用于根據(jù)測試用例的運(yùn)行結(jié)果,生成測試報(bào)告。
2.根據(jù)權(quán)利要求1所述的測試裝置,其特征在于,所述數(shù)據(jù)定義單元,用于分析所述接口掃描單元對所述被測試對象的掃描結(jié)果,當(dāng)所 述接口參數(shù)類型為復(fù)雜對象類型時(shí),展現(xiàn)所述接口參數(shù)類型的樹形結(jié)構(gòu),獲取用戶指定的 所述接口參數(shù)類型中各基本對象類型的配置信息,根據(jù)各基本對象類型的配置信息和接口 參數(shù)類型的樹形結(jié)構(gòu)配置接口參數(shù)對象;當(dāng)所述接口參數(shù)類型為基本對象類型時(shí),獲取用 戶指定的所述基本對象類型的配置信息,根據(jù)所述基本對象類型的配置信息配置接口參數(shù) 對象。
3.根據(jù)權(quán)利要求2所述的測試裝置,其特征在于, 所述接口測試裝置還包括接口定義單元,用于獲取用戶指定的接口尋址信息、接口返回類型和接口參數(shù)類型,封 裝接口,所述接口包括接口尋址信息,接口返回類型對應(yīng)的接口返回對象,所述數(shù)據(jù)定義 單元配置的接口參數(shù)對象;所述測試用例封裝單元獲取的用例元素包括接口定義單元封裝的接口。
4.根據(jù)權(quán)利要求3所述的測試裝置,其特征在于,還包括共享單元,所述數(shù)據(jù)定義單元,還用于在接收到用戶指示將接口參數(shù)類型的配置信息共享的指令 后,將接口參數(shù)類型的配置信息保存到共享單元;所述接口參數(shù)類型的配置信息包括接口 參數(shù)類型中各基本對象類型的配置信息;所述共享單元,用于保存所述接口參數(shù)類型的配置信息;其中,所述共享單元中保存的 接口參數(shù)類型中各基本對象類型的配置信息是所述數(shù)據(jù)定義單元以后配置接口參數(shù)對象 時(shí)用戶所指定的基本對象類型的配置信息; 或者,所述接口定義單元,還用于接收用戶指示將接口共享的指令,將所述接口保存到共享 單元;所述共享單元,用于保存所述接口;其中,所述共享單元保存的接口是測試用例封裝單 元以后封裝測試用例時(shí)用戶所選擇的用例元素; 或者,所述測試用例封裝單元,還用于接收用戶指示將測試用例共享的指令,將所述測試用 例保存到共享單元;所述共享單元,用于保存所述測試用例。
5.根據(jù)權(quán)利要求2所述的測試裝置,其特征在于, 所述接口測試裝置還包括接口定義單元,用于獲取用戶指定的接口尋址信息、接口返回類型和接口參數(shù)類型,封 裝接口,所述接口包括接口尋址信息,接口返回類型對應(yīng)的接口返回對象,所述數(shù)據(jù)定義 單元配置的接口參數(shù)對象;測試邏輯封裝單元,用于獲取用戶選擇的多個(gè)邏輯封裝元素,按照用戶指定的調(diào)用關(guān) 系將多個(gè)邏輯封裝元素封裝成測試邏輯結(jié)構(gòu),所述多個(gè)邏輯封裝元素包括所述接口定義單 元封裝的接口;所述測試用例封裝單元獲取的用例元素包括測試邏輯封裝單元封裝的測試邏輯結(jié)構(gòu)。
6.根據(jù)權(quán)利要求5所述的測試裝置,其特征在于,所述多個(gè)邏輯封裝元素包括第一邏輯封裝元素和第二邏輯封裝元素; 所述測試邏輯封裝單元,用于獲取用戶選擇的多個(gè)邏輯封裝元素,將第一邏輯封裝元 素的返回結(jié)果作為變量,根據(jù)用戶的指令設(shè)置變量的值作為第二邏輯封裝元素的輸入值, 得到測試邏輯結(jié)構(gòu)。
7.根據(jù)權(quán)利要求5所述的測試裝置,其特征在于,還包括共享單元,所述數(shù)據(jù)定義單元,還用于在接收到用戶指示將接口參數(shù)類型的配置信息共享的指令 后,將接口參數(shù)類型的配置信息保存到共享單元;所述接口參數(shù)類型的配置信息包括接口 參數(shù)類型中各基本對象類型的配置信息;所述共享單元,用于保存所述接口參數(shù)類型的配置信息;其中,所述共享單元保存的接 口參數(shù)類型中各基本對象類型的配置信息是所述數(shù)據(jù)定義單元以后配置接口參數(shù)對象時(shí) 用戶所指定的基本對象類型的配置信息; 或者,所述接口定義單元,還用于接收用戶指示將接口共享的指令,將所述接口保存到共享 單元;所述共享單元,用于保存所述接口;其中,所述共享單元保存的接口是測試用例封裝單 元以后封裝測試用例時(shí)用戶所選擇的用例元素或者是測試邏輯封裝單元以后封裝測試邏 輯結(jié)構(gòu)時(shí)用戶所選擇的邏輯封裝元素; 或者,所述測試邏輯封裝單元,還用于接收用戶指示將測試邏輯結(jié)構(gòu)共享的指令,將所述測 試邏輯結(jié)構(gòu)保存到共享單元;所述共享單元,用于保存所述測試邏輯結(jié)構(gòu);其中,所述共享單元保存的測試邏輯結(jié)構(gòu) 是測試用例封裝單元以后封裝測試用例時(shí)用戶所選擇的用例元素; 或者,所述測試用例封裝單元,還用于接收用戶指示將測試用例共享的指令,將所述測試用 例保存到共享單元;所述共享單元,用于保存所述測試用例。
8.根據(jù)權(quán)利要求4或者7所述的測試裝置,其特征在于,所述共享單元,還用于將所保存的內(nèi)容發(fā)送給中央控制器。
9.根據(jù)權(quán)利要求1所述的測試裝置,其特征在于, 所述測試用例封裝單元包括測試數(shù)據(jù)獲取子單元,用于展現(xiàn)用例元素中具有配置信息的基本對象類型,根據(jù)用戶 的指令從公共變量池中查找變量,設(shè)置變量的值作為用戶指定的基本對象類型所對應(yīng)的測 試數(shù)據(jù);測試用例封裝子單元,用于根據(jù)所述用例元素及其各基本對象類型對應(yīng)的測試數(shù)據(jù), 封裝測試用例;或者,所述測試用例封裝單元包括數(shù)據(jù)更新子單元,用于展現(xiàn)用例元素中具有配置信息的基本對象類型,接收用戶輸入 的所述基本對象類型的新的配置信息,更新用例元素;測試數(shù)據(jù)獲取子單元,用于獲取所述用例元素中各基本對象類型對應(yīng)的測試數(shù)據(jù); 測試用例封裝子單元,用于根據(jù)更新后的用例元素及其各基本對象類型對應(yīng)的測試數(shù) 據(jù),封裝測試用例。
10.根據(jù)權(quán)利要求1所述的測試裝置,其特征在于,所述基本對象類型的配置信息包括基本對象類型的輸入值范圍; 所述測試用例封裝單元,還用于根據(jù)已經(jīng)封裝的測試用例和測試用例中基本對象類型 的輸入值范圍,利用二元正交算法生成新的測試用例。
11.根據(jù)權(quán)利要求1所述的測試裝置,其特征在于,還包括用例調(diào)度單元,用于控制所述接口測試裝置展現(xiàn)用例調(diào)度配置界面,接收用戶在所述 用例調(diào)度配置界面中指定的測試用例運(yùn)行規(guī)則;所述用例執(zhí)行單元,用于根據(jù)用戶指定的測試用例運(yùn)行規(guī)則,運(yùn)行所述測試用例。
12.—種接口測試方法,其特征在于,包括 根據(jù)用戶指定的接口參數(shù)類型掃描被測試對象;分析對被測試對象的掃描結(jié)果,展現(xiàn)所述接口參數(shù)類型的結(jié)構(gòu),所述接口參數(shù)類型包 括基本對象類型,獲取用戶指定的基本對象類型的配置信息;獲取用戶選擇的用例元素,利用用例元素中基本對象類型的配置信息,獲取所述用例 元素中各基本對象類型對應(yīng)的測試數(shù)據(jù),利用所述用例元素及其中各基本對象類型對應(yīng)的 測試數(shù)據(jù)封裝測試用例;運(yùn)行所述測試用例,生成測試報(bào)告。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于, 展現(xiàn)所述接口參數(shù)類型的結(jié)構(gòu)包括當(dāng)所述接口參數(shù)類型為復(fù)雜對象類型時(shí),展現(xiàn)所述接口參數(shù)類型的樹形結(jié)構(gòu)。
14.根據(jù)權(quán)利要求12所述的方法,其特征在于, 獲取用戶指定的基本對象類型的配置信息包括 接收用戶輸入的所述基本對象類型的配置信息; 或者,接收用戶輸入的指示查找所述接口參數(shù)類型的配置信息的查找指令; 在本地查找所述接口參數(shù)類型的配置信息,如果本地沒有找到所述接口參數(shù)類型的配置信息,向中央控制器查詢所述接口參數(shù)類型的配置信息,其中,所述接口參數(shù)類型的配置 信息包括接口參數(shù)類型中各基本對象類型的配置信息。
15.根據(jù)權(quán)利要求12所述的方法,其特征在于,在獲取用戶指定的基本對象類型的配置信息之后,該方法還包括 根據(jù)所述基本對象類型的配置信息配置接口參數(shù)對象;封裝接口,所述接口包括用戶指定的接口尋址信息、用戶指定的接口返回類型所對應(yīng) 的接口返回對象和所述接口參數(shù)對象;所述獲取用戶選擇的用例元素包括獲取用戶選擇的已封裝的接口。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于, 在配置接口參數(shù)對象之后,該方法還包括接收到用戶指示將接口參數(shù)類型的配置信息共享的指令后,保存所述接口參數(shù)類型的 配置信息以便以后配置接口參數(shù)對象時(shí)作為用戶指定的基本對象類型的配置信息; 或者,在封裝接口之后,該方法還包括接收用戶指示將接口共享的指令,保存所述接口以便以后封裝測試用例時(shí)作為用戶選 擇的用例元素; 或者,在利用所述用例元素及其中各基本對象類型對應(yīng)的測試數(shù)據(jù)封裝測試用例之后,該方 法還包括接收用戶指示將測試用例共享的指令,保存所述測試用例。
17.根據(jù)權(quán)利要求12所述的方法,其特征在于,在獲取用戶指定的基本對象類型的配置信息之后,該方法還包括 根據(jù)所述基本對象類型的配置信息配置接口參數(shù)對象;封裝接口,所述接口包括用戶指定的接口尋址信息、用戶指定的接口返回類型所對應(yīng) 的接口返回對象和所述接口參數(shù)對象;獲取用戶選擇的多個(gè)邏輯封裝元素,按照用戶指定的調(diào)用關(guān)系將多個(gè)邏輯封裝元素封 裝成測試邏輯結(jié)構(gòu),所述多個(gè)邏輯封裝元素包括所封裝的接口 ;所述獲取用戶選擇的用例元素包括獲取用戶選擇的已封裝的測試邏輯結(jié)構(gòu)。
18.根據(jù)權(quán)利要求17所述的方法,其特征在于,所述多個(gè)邏輯封裝元素包括第一邏輯封裝元素和第二邏輯封裝元素; 所述按照用戶指定的調(diào)用關(guān)系將多個(gè)邏輯封裝元素封裝成測試邏輯結(jié)構(gòu)包括 將第一邏輯封裝元素的返回結(jié)果作為變量,根據(jù)用戶的指令設(shè)置變量的值作為第二邏 輯封裝元素的輸入值,得到測試邏輯結(jié)構(gòu)。
19.根據(jù)權(quán)利要求17所述的方法,其特征在于, 在配置接口參數(shù)對象之后,該方法還包括接收到用戶指示將接口參數(shù)類型的配置信息共享的指令后,保存所述接口參數(shù)類型的 配置信息以便以后配置接口參數(shù)對象時(shí)作為用戶指定的基本對象類型的配置信息; 或者,在封裝接口之后,該方法還包括接收用戶指示將接口共享的指令,保存所述接口以便以后封裝測試用例時(shí)作為用戶選 擇的用例元素或者封裝測試邏輯結(jié)構(gòu)時(shí)作為用戶選擇的邏輯封裝元素; 或者,在封裝測試邏輯結(jié)構(gòu)之后,該方法還包括接收用戶指示將測試邏輯結(jié)構(gòu)共享的指令后,保存所述測試邏輯結(jié)構(gòu)以便以后封裝測 試用例時(shí)作為用戶選擇的用例元素; 或者,在利用所述用例元素及其中各基本對象類型對應(yīng)的測試數(shù)據(jù)封裝測試用例之后,該方 法還包括接收用戶指示將測試用例共享的指令,保存所述測試用例。
20.根據(jù)權(quán)利要求16或者19所述的方法,其特征在于, 所述保存所述接口參數(shù)類型的配置信息包括在本地保存所述接口參數(shù)類型的配置信息,并將所述接口參數(shù)類型的配置信息保存到 中央控制器。
21.根據(jù)權(quán)利要求16或者19所述的方法,其特征在于, 保存所述接口包括在本地保存所述接口,并將所述接口保存到中央控制器。
22.根據(jù)權(quán)利要求19所述的方法,其特征在于, 保存所述測試邏輯結(jié)構(gòu)包括在本地保存所述測試邏輯結(jié)構(gòu),并將所述測試邏輯結(jié)構(gòu)保存到中央控制器。
23.根據(jù)權(quán)利要求16或者19所述的方法,其特征在于, 保存所述測試用例包括在本地保存所述測試用例,并將所述測試用例保存到中央控制器。
24.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述獲取所述用例元素中各基本對象類型對應(yīng)的測試數(shù)據(jù)包括 展現(xiàn)用例元素中具有配置信息的基本對象類型,根據(jù)用戶的指令從公共變量池中查找 變量,設(shè)置變量的值作為用戶選擇的用例元素中基本對象類型對應(yīng)的測試數(shù)據(jù)。
25.根據(jù)權(quán)利要求12所述的方法,其特征在于,該方法還包括控制所述接口測試裝置展現(xiàn)用例調(diào)度配置界面,接收用戶在所述用例 調(diào)度配置界面中指定的測試用例運(yùn)行規(guī)則; 所述運(yùn)行所述測試用例包括根據(jù)用戶指定的測試用例運(yùn)行規(guī)則,運(yùn)行所述測試用例。
全文摘要
本發(fā)明提供一種接口測試方法及裝置,其接口測試方法包括接口掃描單元,用于根據(jù)用戶指定的接口參數(shù)類型掃描被測試對象;數(shù)據(jù)定義單元,用于分析接口掃描單元對被測試對象的掃描結(jié)果,展現(xiàn)接口參數(shù)類型的結(jié)構(gòu),接口參數(shù)類型包括基本對象類型,獲取用戶指定的基本對象類型的配置信息;測試用例封裝單元,用于獲取用戶選擇的用例元素,利用數(shù)據(jù)定義單元獲取的用例元素中基本對象類型的配置信息,獲取各基本對象類型對應(yīng)的測試數(shù)據(jù),利用用例元素及其中各基本對象類型對應(yīng)的測試數(shù)據(jù)封裝測試用例;用例執(zhí)行單元,用于運(yùn)行測試用例;報(bào)告生成單元,用于根據(jù)測試用例的運(yùn)行結(jié)果,生成測試報(bào)告。使用本發(fā)明實(shí)施例提供的技術(shù)方案,能夠提高測試效率。
文檔編號G06F11/36GK102096631SQ20091025432
公開日2011年6月15日 申請日期2009年12月11日 優(yōu)先權(quán)日2009年12月11日
發(fā)明者楊達(dá)宇, 陳志利 申請人:華為技術(shù)有限公司