欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

接口測(cè)試方法、接口描述數(shù)據(jù)庫(kù)生成方法及裝置與流程

文檔序號(hào):11829419閱讀:214來(lái)源:國(guó)知局
接口測(cè)試方法、接口描述數(shù)據(jù)庫(kù)生成方法及裝置與流程
本申請(qǐng)涉及軟件測(cè)試
技術(shù)領(lǐng)域
,尤其涉及一種接口測(cè)試方法、接口描述數(shù)據(jù)庫(kù)生成方法及裝置。
背景技術(shù)
:接口是指同一系統(tǒng)不同功能層之間的通信規(guī)則。在服務(wù)接口化(以服務(wù)的方式對(duì)外提供一個(gè)接口)盛行的當(dāng)下,在端到端的接口系統(tǒng)中,保證前后端進(jìn)行交互的接口的質(zhì)量和穩(wěn)定顯得尤為重要,而接口的質(zhì)量和穩(wěn)定性在接口開(kāi)發(fā)過(guò)程中是通過(guò)接口測(cè)試來(lái)驗(yàn)證的,這就對(duì)接口測(cè)試的驗(yàn)證結(jié)果的準(zhǔn)確性提出了較高的要求。在現(xiàn)有的接口測(cè)試中,由于同一服務(wù)系統(tǒng)中服務(wù)軟件的前端開(kāi)發(fā)(這里泛指客戶(hù)端的開(kāi)發(fā))和后端開(kāi)發(fā)(這里泛指服務(wù)器端開(kāi)發(fā))往往是并行的,因此,前端開(kāi)發(fā)的接口的測(cè)試和對(duì)后端開(kāi)發(fā)的接口的測(cè)試也是并行的。前后端接口測(cè)試工程師對(duì)各自開(kāi)發(fā)的接口的測(cè)試是基于一份接口描述中提供標(biāo)準(zhǔn)的軟件功能以及參數(shù)、返回值等信息分別進(jìn)行的,該接口描述是前端開(kāi)發(fā)者和后端開(kāi)發(fā)者之間進(jìn)行交互操作的基礎(chǔ),也構(gòu)建了雙方之間的一種基于契約的合作模式,雙方對(duì)契約理解的一致性是接口測(cè)試能夠準(zhǔn)確高效進(jìn)行的基礎(chǔ)。然而,由于接口提供的功能通常有適合的應(yīng)用范圍和場(chǎng)景,例如參數(shù)的取值范圍、操作的調(diào)用順序等;對(duì)接口的測(cè)試也建立在對(duì)接口提供的功能的某些隱含假設(shè)之上,現(xiàn)有的接口描述中缺少足夠的信息,無(wú)法準(zhǔn)確表達(dá)這些隱含的約束限制條件,因此,基于現(xiàn)有的接口描述進(jìn)行接口測(cè)試,常常造成接口測(cè)試的測(cè)試結(jié)果的準(zhǔn)確性較低。技術(shù)實(shí)現(xiàn)要素:本申請(qǐng)實(shí)施例提供一種接口測(cè)試方法、接口描述數(shù)據(jù)庫(kù)生成方法及裝置,用以解決基于現(xiàn)有的接口描述進(jìn)行接口測(cè)試,造成的接口測(cè)試的測(cè)試結(jié)果的準(zhǔn)確性較低的問(wèn)題。一種接口測(cè)試方法,包括:生成針對(duì)待測(cè)試接口的請(qǐng)求數(shù)據(jù);將所述請(qǐng)求數(shù)據(jù)發(fā)送給所述待測(cè)試接口所在的服務(wù)器;接收所述服務(wù)器返回的針對(duì)所述請(qǐng)求數(shù)據(jù)的響應(yīng)數(shù)據(jù);并從接口描述數(shù)據(jù)庫(kù)中獲取所述待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,所述接口描述數(shù)據(jù)庫(kù)中包括接口名稱(chēng)及其對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,所述響應(yīng)數(shù)據(jù)描述包括正確的響應(yīng)數(shù)據(jù)應(yīng)包括的響應(yīng)字段集以及該響應(yīng)字段集中的每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件;利用獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集及該響應(yīng)字段集中的每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件對(duì)接收的所述響應(yīng)數(shù)據(jù)進(jìn)行驗(yàn)證,獲得驗(yàn)證結(jié)果。一種基于上述接口測(cè)試方法的接口描述數(shù)據(jù)庫(kù)生成方法,包括:根據(jù)待測(cè)試接口代碼,生成所述待測(cè)試接口的接口測(cè)試腳本;建立生成的所述待測(cè)試接口的接口測(cè)試腳本與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系,以及將該關(guān)聯(lián)關(guān)系存儲(chǔ)在接口描述數(shù)據(jù)庫(kù)中,所述待測(cè)試接口代碼是根據(jù)所述請(qǐng)求數(shù)據(jù)生成的;并將生成針對(duì)待測(cè)試接口的請(qǐng)求數(shù)據(jù)作為該待測(cè)試接口的接口測(cè)試用例,建立該接口測(cè)試用例與所述待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系,以及將該關(guān)聯(lián)關(guān)系存儲(chǔ)在接口描述數(shù)據(jù)庫(kù)中;并將接收的所述響應(yīng)數(shù)據(jù)作為待測(cè)試接口的測(cè)試數(shù)據(jù),建立該接口測(cè)試數(shù)據(jù)與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系,以及將該關(guān)聯(lián)關(guān)系存儲(chǔ)在接口描述數(shù)據(jù)庫(kù)中;并根據(jù)所述驗(yàn)證結(jié)果生成針對(duì)所述待測(cè)試接口的接口測(cè)試報(bào)告,建立該接口 測(cè)試報(bào)告與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系,以及將該關(guān)聯(lián)關(guān)系存儲(chǔ)在接口描述數(shù)據(jù)庫(kù)中,所述接口測(cè)試報(bào)告包括已驗(yàn)證的待測(cè)試接口的請(qǐng)求數(shù)據(jù)、驗(yàn)證結(jié)果、驗(yàn)證結(jié)果狀態(tài)和驗(yàn)證結(jié)果失敗原因分析中的一種或多種,所述驗(yàn)證結(jié)果狀態(tài)包括成功和失敗。一種接口測(cè)試裝置,包括:請(qǐng)求數(shù)據(jù)生成單元,用于生成針對(duì)待測(cè)試接口的請(qǐng)求數(shù)據(jù);發(fā)送單元,用于將所述請(qǐng)求數(shù)據(jù)發(fā)送給所述待測(cè)試接口所在的服務(wù)器;接收單元,用于接收所述服務(wù)器返回的針對(duì)所述請(qǐng)求數(shù)據(jù)的響應(yīng)數(shù)據(jù);獲取單元,用于從接口描述數(shù)據(jù)庫(kù)中獲取所述待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,所述接口描述數(shù)據(jù)庫(kù)中包括接口名稱(chēng)及其對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,所述響應(yīng)數(shù)據(jù)描述包括正確的響應(yīng)數(shù)據(jù)應(yīng)包括的響應(yīng)字段集以及該響應(yīng)字段集中的每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件;驗(yàn)證單元,用于利用獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集及該響應(yīng)字段集中的每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件對(duì)接收的所述響應(yīng)數(shù)據(jù)進(jìn)行驗(yàn)證,獲得驗(yàn)證結(jié)果。一種基于上述接口測(cè)試裝置的接口描述數(shù)據(jù)庫(kù)生成裝置,包括:第一關(guān)聯(lián)關(guān)系建立單元,用于根據(jù)待測(cè)試接口代碼,生成所述待測(cè)試接口的接口測(cè)試腳本;建立生成的所述待測(cè)試接口的接口測(cè)試腳本與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系,所述待測(cè)試接口代碼是根據(jù)所述請(qǐng)求數(shù)據(jù)生成的;第二關(guān)聯(lián)關(guān)系建立單元,用于將生成針對(duì)待測(cè)試接口的請(qǐng)求數(shù)據(jù)作為該待測(cè)試接口的接口測(cè)試用例,建立該接口測(cè)試用例與所述待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系;第三關(guān)聯(lián)關(guān)系建立單元,用于將接收的所述響應(yīng)數(shù)據(jù)作為待測(cè)試接口的測(cè)試數(shù)據(jù),建立該接口測(cè)試數(shù)據(jù)與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系;第四關(guān)聯(lián)關(guān)系建立單元,用于根據(jù)所述驗(yàn)證結(jié)果生成針對(duì)所述待測(cè)試接口的接口測(cè)試報(bào)告,建立該接口測(cè)試報(bào)告與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān) 系,所述接口測(cè)試報(bào)告包括已驗(yàn)證的待測(cè)試接口的請(qǐng)求數(shù)據(jù)、驗(yàn)證結(jié)果、驗(yàn)證結(jié)果狀態(tài)和驗(yàn)證結(jié)果失敗原因分析中的一種或多種,所述驗(yàn)證結(jié)果狀態(tài)包括成功和失??;存儲(chǔ)單元,用于將所述待測(cè)試接口的接口測(cè)試腳本與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系、接口測(cè)試用例與所述待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系、接口測(cè)試報(bào)告與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系和待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系存儲(chǔ)在接口描述數(shù)據(jù)庫(kù)中。在本申請(qǐng)實(shí)施例中,接口描述數(shù)據(jù)庫(kù)中包括接口名稱(chēng)及其對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,該響應(yīng)數(shù)據(jù)描述包括正確的響應(yīng)數(shù)據(jù)應(yīng)包括的響應(yīng)字段集以及該響應(yīng)字段集中每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件;這就使得在進(jìn)行接口測(cè)試時(shí),可以從接口描述數(shù)據(jù)庫(kù)中獲取待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,進(jìn)而利用該獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集及約束條件對(duì)接收的所述響應(yīng)數(shù)據(jù)進(jìn)行驗(yàn)證,獲得驗(yàn)證結(jié)果。由于本申請(qǐng)的接口描述數(shù)據(jù)庫(kù)中的響應(yīng)數(shù)據(jù)描述包括正確的響應(yīng)數(shù)據(jù)應(yīng)包括的響應(yīng)字段集及約束條件,擴(kuò)充了現(xiàn)有的接口描述的信息,并且使得準(zhǔn)確表達(dá)隱含的約束限制條件成為可能,因此,提高了驗(yàn)證結(jié)果的準(zhǔn)確性,確保了順利通過(guò)接口測(cè)試后的接口的質(zhì)量相對(duì)較高且穩(wěn)定性相對(duì)較好。附圖說(shuō)明圖1為本申請(qǐng)實(shí)施例一提供的接口測(cè)試方法示意圖;圖2為本申請(qǐng)實(shí)施例二提供的接口測(cè)試裝置的結(jié)構(gòu)示意圖;圖3為本申請(qǐng)實(shí)施例三提供的利用If-test接口測(cè)試平臺(tái)執(zhí)行接口測(cè)試的過(guò)程的示意圖;圖4為本申請(qǐng)實(shí)施例四提供的接口測(cè)試方法示意圖;圖5為本申請(qǐng)實(shí)施例四提供的接口測(cè)試方法在具體項(xiàng)目中運(yùn)用示例示意圖;圖6為本申請(qǐng)實(shí)施例五提供的接口測(cè)試裝置的結(jié)構(gòu)示意圖;圖7為本申請(qǐng)實(shí)施例六提供的接口描述數(shù)據(jù)庫(kù)生成裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式本申請(qǐng)實(shí)施例的接口測(cè)試方法是基于提出的包含接口的接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述的接口描述數(shù)據(jù)庫(kù)的基礎(chǔ)上進(jìn)行的,該響應(yīng)數(shù)據(jù)描述包括正確的響應(yīng)數(shù)據(jù)應(yīng)包括的響應(yīng)字段集以及該響應(yīng)字段集中每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件;這就使得在進(jìn)行接口測(cè)試時(shí),可以從接口描述數(shù)據(jù)庫(kù)中獲取待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,進(jìn)而利用該獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集及約束條件對(duì)接收的所述響應(yīng)數(shù)據(jù)進(jìn)行驗(yàn)證,獲得驗(yàn)證結(jié)果。由于本申請(qǐng)的接口描述數(shù)據(jù)庫(kù)中的響應(yīng)數(shù)據(jù)描述包括正確的響應(yīng)數(shù)據(jù)應(yīng)包括的響應(yīng)字段集及約束條件,擴(kuò)充了現(xiàn)有的接口描述的信息,并且使得準(zhǔn)確表達(dá)隱含的約束限制條件成為可能,因此,提高了驗(yàn)證結(jié)果的準(zhǔn)確性,確保了順利通過(guò)接口測(cè)試后的接口的質(zhì)量相對(duì)較高且穩(wěn)定性相對(duì)較好。以下結(jié)合說(shuō)明書(shū)附圖對(duì)本申請(qǐng)的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本申請(qǐng),并不用于限定本申請(qǐng)。并且在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。實(shí)施例一如圖1所示,其為本申請(qǐng)實(shí)施例一的接口測(cè)試方法示意圖,這里的測(cè)試方法可以理解為模擬客戶(hù)端(例如,瀏覽器,移動(dòng)端App中的Webview(iOS下稱(chēng)UIWebview))對(duì)服務(wù)器端實(shí)際的接口進(jìn)行測(cè)試,包括以下步驟:步驟101:生成針對(duì)待測(cè)試接口的請(qǐng)求數(shù)據(jù);具體的,所述請(qǐng)求數(shù)據(jù)中可包括:請(qǐng)求名、請(qǐng)求的url,請(qǐng)求類(lèi)型(get/post),請(qǐng)求參數(shù)值(get參數(shù)值/post參數(shù)值)等中的多種數(shù)據(jù);例如:假設(shè)請(qǐng)求數(shù)據(jù)為http://example.com/demo.htm?searchNo=0,這這個(gè) 請(qǐng)求數(shù)據(jù)中的請(qǐng)求名為:demo,請(qǐng)求的url為http://example.com/demo,請(qǐng)求類(lèi)型為get請(qǐng)求,請(qǐng)求參數(shù)為searchNo,該請(qǐng)求參數(shù)的值為0。本步驟101中的請(qǐng)求數(shù)據(jù)中的請(qǐng)求參數(shù)值可以是人為設(shè)置的,也可以是通過(guò)測(cè)試工具利用正確的請(qǐng)求數(shù)據(jù)應(yīng)滿(mǎn)足的約束條件自動(dòng)生成的。步驟102:將所述請(qǐng)求數(shù)據(jù)發(fā)送給所述待測(cè)試接口所在的服務(wù)器;本步驟102中,將請(qǐng)求數(shù)據(jù)發(fā)送給所述服務(wù)器后,所述服務(wù)器通過(guò)所述待測(cè)試接口接收所述請(qǐng)求數(shù)據(jù),根據(jù)所述請(qǐng)求數(shù)據(jù)中的請(qǐng)求參數(shù)值進(jìn)行運(yùn)算處理;并將處理結(jié)果也即響應(yīng)數(shù)據(jù)返回給所述請(qǐng)求數(shù)據(jù)發(fā)送方。優(yōu)選地,步驟102具體可包括:根據(jù)所述請(qǐng)求數(shù)據(jù),生成所述待測(cè)試接口的接口測(cè)試代碼;通過(guò)運(yùn)行生成的所述接口測(cè)試代碼實(shí)現(xiàn)將所述數(shù)據(jù)發(fā)送給所述待測(cè)試接口。需要說(shuō)明的是,上述步驟101和步驟102中是構(gòu)造并模擬發(fā)送請(qǐng)求數(shù)據(jù)到待測(cè)試接口的過(guò)程;這里,根據(jù)生成的所述待測(cè)試接口測(cè)試代碼還可以生成所述待測(cè)試接口的接口測(cè)試腳本,這里的腳本是可執(zhí)行的腳本,可以在后續(xù)代碼的持續(xù)集成中使用。步驟103:接收所述服務(wù)器返回的針對(duì)所述請(qǐng)求數(shù)據(jù)的響應(yīng)數(shù)據(jù);步驟104:從接口描述數(shù)據(jù)庫(kù)中獲取所述待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述;所述接口描述數(shù)據(jù)庫(kù)可以存放在是系統(tǒng)數(shù)據(jù)庫(kù)里,也可以存放在代碼托管服務(wù)器上,便于前后端開(kāi)發(fā)人員及測(cè)試人員共享;所述接口描述數(shù)據(jù)庫(kù)中包括接口名稱(chēng)及其對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,所述響應(yīng)數(shù)據(jù)描述可包括:正確的響應(yīng)數(shù)據(jù)應(yīng)包括的響應(yīng)字段集,以及該響應(yīng)字段集中的每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件;所述響應(yīng)字段集中的響應(yīng)字段的個(gè)數(shù)可以是一個(gè),也可以是多個(gè),由軟件 開(kāi)發(fā)者設(shè)計(jì)的具體的接口來(lái)決定;假設(shè)某一接口的正確的響應(yīng)數(shù)據(jù)應(yīng)包括的響應(yīng)字段集中響應(yīng)字段的個(gè)數(shù)為2個(gè),分別為響應(yīng)字段1和響應(yīng)字段2,則此時(shí),該接口的響應(yīng)數(shù)據(jù)描述包括響應(yīng)字段1、響應(yīng)字段1的字段值應(yīng)滿(mǎn)足的約束條件,以及響應(yīng)字段2、響應(yīng)字段2的字段值應(yīng)滿(mǎn)足的約束條件;這里的響應(yīng)字段可以理解為響應(yīng)數(shù)據(jù)必須包括的字段;具體的,所述接口描述數(shù)據(jù)庫(kù)中的描述遵循/符合設(shè)定語(yǔ)法格式,以便于測(cè)試工具自動(dòng)化執(zhí)行本發(fā)明實(shí)施例一中的接口測(cè)試方案,進(jìn)一步的,該設(shè)定的語(yǔ)法格式是用于對(duì)輸出給接口的參數(shù)或接口輸出的參數(shù)所使用的語(yǔ)法格式進(jìn)行驗(yàn)證的語(yǔ)法格式,例如:假設(shè)輸出給接口的參數(shù)或接口輸出的參數(shù)的語(yǔ)法格式為JSON(JavaScriptObjectNotiation,基于JavaScript語(yǔ)言的輕量級(jí)的數(shù)據(jù)交換格式),則該設(shè)定的語(yǔ)法格式為JSONSchema(JSON框架);假設(shè)輸出給接口的參數(shù)或接口輸出的參數(shù)的語(yǔ)法格式為blueprint(藍(lán)本數(shù)據(jù)交換格式),則該設(shè)定的語(yǔ)法格式為blueprintSchema(blueprint框架)。步驟105:利用獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集及該響應(yīng)字段集中的每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件對(duì)接收的所述響應(yīng)數(shù)據(jù)進(jìn)行驗(yàn)證,獲得驗(yàn)證結(jié)果。具體的,所述該設(shè)定語(yǔ)法格式可包含由關(guān)鍵詞及其對(duì)應(yīng)的語(yǔ)義函數(shù)構(gòu)成的語(yǔ)義標(biāo)簽,響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件由預(yù)設(shè)的關(guān)鍵詞及對(duì)應(yīng)的約束條件函數(shù)構(gòu)成的語(yǔ)義標(biāo)簽表示;這里的約束條件函數(shù)即為預(yù)設(shè)的關(guān)鍵詞對(duì)應(yīng)的語(yǔ)義函數(shù);此外,所述接口描述數(shù)據(jù)庫(kù)中還可以包括所述設(shè)定語(yǔ)法格式的規(guī)范,以便利用該規(guī)范對(duì)接收的響應(yīng)數(shù)據(jù)的語(yǔ)法格式是否符合該設(shè)定語(yǔ)法格式的規(guī)范進(jìn)行驗(yàn)證。需要說(shuō)明的是,這里的語(yǔ)義標(biāo)簽是本申請(qǐng)?jiān)谧袷厮稣Z(yǔ)法格式的基礎(chǔ)上,擴(kuò)展出來(lái)的語(yǔ)義標(biāo)簽,專(zhuān)門(mén)為本申請(qǐng)的約束條件的表達(dá)而擴(kuò)展的。此時(shí),步驟105的具體驗(yàn)證過(guò)程可包括以下三個(gè)步驟:步驟a1:確定獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集中包括的各響應(yīng)字段;步驟b1:針對(duì)確定的每一響應(yīng)字段,根據(jù)所述預(yù)設(shè)的關(guān)鍵詞,從獲取的所述響應(yīng)數(shù)據(jù)描述中確定該響應(yīng)字段的字段值對(duì)應(yīng)的約束條件函數(shù);步驟c1:判斷接收的所述響應(yīng)數(shù)據(jù)中包含的全部字段構(gòu)成的集合是否與獲取的所述數(shù)據(jù)響應(yīng)描述中的響應(yīng)字段集構(gòu)成的集合相等,以及各響應(yīng)字段的字段值是否均滿(mǎn)足對(duì)應(yīng)的約束條件函數(shù);步驟d1:若接收的所述響應(yīng)數(shù)據(jù)中包含的全部字段構(gòu)成的集合與獲取的所述數(shù)據(jù)響應(yīng)描述中的響應(yīng)字段集構(gòu)成的集合相等,且各響應(yīng)字段的字段值均滿(mǎn)足對(duì)應(yīng)的約束條件函數(shù),則確定驗(yàn)證成功;反之,則確定驗(yàn)證失敗。上述步驟c1和步驟d1,具體的執(zhí)行過(guò)程可以但并不局限于如下方式:針對(duì)每一響應(yīng)字段,執(zhí)行以下操作:判斷接收的所述響應(yīng)數(shù)據(jù)是否包含該響應(yīng)字段以及該響應(yīng)字段是否具有字段值;若包含該響應(yīng)字段且具有字段值,則判斷該字段值是否滿(mǎn)足該響應(yīng)字段的約束條件函數(shù);若所述響應(yīng)數(shù)據(jù)中包含數(shù)據(jù)響應(yīng)描述中的全部響應(yīng)字段,數(shù)據(jù)響應(yīng)描述中的全部響應(yīng)字段均包含在所述響應(yīng)數(shù)據(jù)中并且各響應(yīng)字段的字段值均滿(mǎn)足對(duì)應(yīng)的約束條件,則確定驗(yàn)證成功;否則,確定驗(yàn)證失敗。若接收的所述響應(yīng)數(shù)據(jù)中不包含獲取的所述數(shù)據(jù)響應(yīng)描述中的全部響應(yīng)字段,或者包含獲取的所述數(shù)據(jù)響應(yīng)描述中的部分響應(yīng)字段,或者各響應(yīng)字段的字段值不均滿(mǎn)足對(duì)應(yīng)的約束條件函數(shù),則確定驗(yàn)證失敗。下面對(duì)上述語(yǔ)義標(biāo)簽進(jìn)行說(shuō)明,對(duì)于mockjs語(yǔ)義標(biāo)簽,遵循IETFJSONSchemaDraft-04(IETF草案JSON模式)的規(guī)范(該規(guī)范定義了語(yǔ)法格式)的語(yǔ)義標(biāo)簽及格式的兩個(gè)例子如下:例子1:該例子1描述是一個(gè)屬性值為字符串且取值為大于60小于100的自然數(shù)。其中,$schema,type為JSONSchema規(guī)范中的關(guān)鍵詞,http://my.site/myschema#為關(guān)鍵詞$schema的值,表明該自然數(shù)的描述信息遵循的規(guī)范所在的url;string為type的值,表示該自然數(shù)的數(shù)據(jù)類(lèi)型為字符串型;"iftest":"@natural(60,100)",這一句描述,就是一個(gè)語(yǔ)義標(biāo)簽,其中是由“關(guān)鍵詞”和“語(yǔ)義函數(shù)”構(gòu)成,即:"關(guān)鍵詞":"語(yǔ)義函數(shù)",iftest為關(guān)鍵詞,@natural(60,100)為語(yǔ)義函數(shù),@用于標(biāo)識(shí)其后的字符串natural是方法函數(shù),該natural包括最小值和最大值兩個(gè)參數(shù),在例1中,最小值是60,最大值是100,這表明了自然數(shù)的取值范圍。預(yù)設(shè)的關(guān)鍵詞,是本申請(qǐng)自定義的關(guān)鍵詞,上述iftest關(guān)鍵詞是對(duì)現(xiàn)有JSONSchema規(guī)范中的關(guān)鍵詞的擴(kuò)展,并非一定要使用iftest來(lái)表示本身請(qǐng)的預(yù)設(shè)的關(guān)鍵詞,也可以使用其他詞(當(dāng)然,這里的其它詞是指JSONSchema規(guī)范中的關(guān)鍵詞之外的詞)來(lái)表示預(yù)設(shè)的關(guān)鍵詞。例子2:該例子2中,"iftest":"@host_tmall(\"^detail\")"這一句描述也為一個(gè)語(yǔ)義標(biāo)簽。該例子2表示的是一個(gè)數(shù)據(jù)類(lèi)型為字符串的uri(uniformresourceidentifier, 統(tǒng)一資源標(biāo)識(shí)符),且該uri中包含關(guān)鍵詞為“detail”的線(xiàn)上天貓url(uniformresourelocator:統(tǒng)一資源定位器)的描述信息。下表(1)中羅列了基本的數(shù)據(jù)類(lèi)型和提供的基本的方法函數(shù),需要說(shuō)明的是類(lèi)型并不局限于此,方法函數(shù)也可以不斷擴(kuò)展:表(1)上述表(1)中的業(yè)務(wù)類(lèi)型這一方法類(lèi)型中包括的業(yè)務(wù)ID(bizNum)方法函數(shù)和無(wú)協(xié)議url(url_no_protocol)方法函數(shù)是根據(jù)實(shí)際業(yè)務(wù)擴(kuò)展的,也即為本申請(qǐng)實(shí)施例中提供的方法函數(shù)可以不斷擴(kuò)展,并且擴(kuò)展的方法函數(shù)可以有更多的業(yè)務(wù)相關(guān)性,進(jìn)而擁有更多的實(shí)際業(yè)務(wù)應(yīng)用價(jià)值。例如:"iftest":"@bizNUm(3,5)",這一語(yǔ)義標(biāo)簽描述的是一個(gè)業(yè)務(wù)id,長(zhǎng)度是3位到5位;"iftest":"@url_no_protocol",這一語(yǔ)義標(biāo)簽描述的是一個(gè)http請(qǐng)求,沒(méi)有協(xié)議頭,其余保持和url一樣,例如:在http請(qǐng)求為//www.tmall.com時(shí)就是校驗(yàn)成功的,在http請(qǐng)求為http://www.tmall.com時(shí)就是校驗(yàn)失敗的。由于上述步驟a1至步驟d1中的對(duì)接收的響應(yīng)數(shù)據(jù)的正確性的驗(yàn)證過(guò)程是 基于請(qǐng)求描述數(shù)據(jù)庫(kù)中各響應(yīng)字段的語(yǔ)義標(biāo)簽(由預(yù)設(shè)的關(guān)鍵詞以及對(duì)應(yīng)的約束條件函數(shù)構(gòu)成)進(jìn)行的,因此,上述驗(yàn)證方式可以稱(chēng)為語(yǔ)義化驗(yàn)證。此外,在本申請(qǐng)實(shí)施例一的基礎(chǔ)上,考慮到接口的請(qǐng)求數(shù)據(jù)需要具有必填字段(或者必須包括的字段)的字段值符合一定的約束條件,若將該約束條件若在接口描述數(shù)據(jù)庫(kù)中進(jìn)行描述,根據(jù)該這將有利于自動(dòng)測(cè)試化工具利用該約束條件自動(dòng)模擬生成用于測(cè)試的請(qǐng)求數(shù)據(jù),則將使得生成的請(qǐng)求數(shù)據(jù)能盡可能的覆蓋所有測(cè)試點(diǎn),并且能提高用于測(cè)試的請(qǐng)求數(shù)據(jù)的質(zhì)量,也相應(yīng)地確保了獲得的響應(yīng)數(shù)據(jù)的可用性,就進(jìn)一步提升測(cè)試結(jié)果的準(zhǔn)確性,同時(shí)能快速有效地發(fā)現(xiàn)待測(cè)試接口存在的缺陷,下面通過(guò)實(shí)施例二對(duì)這一優(yōu)選方案進(jìn)行說(shuō)明。實(shí)施例二如圖2所示,其為本發(fā)明實(shí)施例二中的接口測(cè)試方法示意圖,該方法中所述接口描述數(shù)據(jù)庫(kù)中不僅包括接口名稱(chēng)、接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,還包括接口名稱(chēng)對(duì)應(yīng)的請(qǐng)求類(lèi)型和請(qǐng)求數(shù)據(jù)描述,所述請(qǐng)求數(shù)據(jù)描述包括正確的請(qǐng)求數(shù)據(jù)應(yīng)包括的請(qǐng)求字段以及請(qǐng)求字段的字段值應(yīng)滿(mǎn)足的約束條件;在此基礎(chǔ)上所述接口測(cè)試方法包括以下步驟:步驟201:從接口描述數(shù)據(jù)庫(kù)中獲取所述待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)請(qǐng)求數(shù)據(jù)描述和請(qǐng)求類(lèi)型;步驟202:根據(jù)獲取的所述請(qǐng)求數(shù)據(jù)描述中包含的各請(qǐng)求字段及每一請(qǐng)求字段的字段值應(yīng)滿(mǎn)足的約束條件,生成請(qǐng)求類(lèi)型為獲取的所述請(qǐng)求類(lèi)型的針對(duì)所述待測(cè)試接口的請(qǐng)求數(shù)據(jù);由于請(qǐng)求數(shù)據(jù)描述包括正確的請(qǐng)求數(shù)據(jù)應(yīng)包括的請(qǐng)求字段以及請(qǐng)求字段的字段值應(yīng)滿(mǎn)足的約束條件,因此,在獲知獲取請(qǐng)求數(shù)據(jù)描述時(shí),就可以獲知其包含的各請(qǐng)求字段及每一請(qǐng)求字段的字段值應(yīng)滿(mǎn)足的約束條件,進(jìn)而利用各請(qǐng)求字段及相應(yīng)的約束條件,生成請(qǐng)求類(lèi)型為獲取的所述請(qǐng)求類(lèi)型的針對(duì)所述待測(cè)試接口的請(qǐng)求數(shù)據(jù)。優(yōu)選地,所述接口描述數(shù)據(jù)庫(kù)中的描述符合設(shè)定語(yǔ)法格式,該設(shè)定語(yǔ)法格式包含由關(guān)鍵詞及其對(duì)應(yīng)的語(yǔ)義函數(shù)構(gòu)成的語(yǔ)義標(biāo)簽,請(qǐng)求字段的字段值應(yīng)滿(mǎn)足的約束條件由預(yù)設(shè)的關(guān)鍵詞及對(duì)應(yīng)的約束條件函數(shù)構(gòu)成的語(yǔ)義標(biāo)簽表示;此時(shí),步驟202具體可包括以下步驟:步驟a2:根據(jù)所述預(yù)設(shè)的關(guān)鍵詞,從獲取的所述請(qǐng)求數(shù)據(jù)描述中確定每一請(qǐng)求字段的字段值對(duì)應(yīng)的約束條件函數(shù);步驟b2:根據(jù)每一請(qǐng)求字段的字段值對(duì)應(yīng)的約束條件函數(shù)生成請(qǐng)求類(lèi)型為獲取的所述請(qǐng)求類(lèi)型的針對(duì)所述待測(cè)試接口的請(qǐng)求數(shù)據(jù)。優(yōu)選地,所述步驟b2可包括:步驟b21:根據(jù)每一請(qǐng)求字段的字段值對(duì)應(yīng)的約束條件函數(shù)生成請(qǐng)求參數(shù)值,該請(qǐng)求參數(shù)值為業(yè)務(wù)相關(guān)的參數(shù)值或者業(yè)務(wù)無(wú)關(guān)的參數(shù)值;步驟b22:利用各請(qǐng)求字段和相應(yīng)的請(qǐng)求參數(shù)值生成請(qǐng)求類(lèi)型為獲取的所述請(qǐng)求類(lèi)型的針對(duì)所述待測(cè)試接口的請(qǐng)求數(shù)據(jù)。步驟203:將所述請(qǐng)求數(shù)據(jù)發(fā)送給所述待測(cè)試接口所在的服務(wù)器;步驟204:接收所述服務(wù)器返回的針對(duì)所述請(qǐng)求數(shù)據(jù)的響應(yīng)數(shù)據(jù);步驟205:從接口描述數(shù)據(jù)庫(kù)中獲取所述待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述;步驟206:利用獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集及該響應(yīng)字段集中的每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件對(duì)接收的所述響應(yīng)數(shù)據(jù)進(jìn)行驗(yàn)證,獲得驗(yàn)證結(jié)果。上述步驟203至步驟206的具體實(shí)施過(guò)程與實(shí)施例一中的步驟102至步驟105的具體實(shí)施過(guò)程相同,這里不再贅述。實(shí)施本發(fā)明實(shí)施例一或者實(shí)施例二的方案的可以是一個(gè)測(cè)試裝置。下面通過(guò)實(shí)施例三中所示的一個(gè)具體的例子對(duì)本申請(qǐng)的具體實(shí)現(xiàn)過(guò)程進(jìn)行詳細(xì)描述。實(shí)施例三本申請(qǐng)實(shí)施例三中以測(cè)試裝置為接口測(cè)試平臺(tái),接口描述數(shù)據(jù)庫(kù)中描述遵循的預(yù)定的數(shù)據(jù)格式為JSON,測(cè)試環(huán)境為通過(guò)http協(xié)議通信的客戶(hù)服務(wù)器環(huán)境為例,通過(guò)圖3和一個(gè)具體的例子對(duì)本發(fā)明實(shí)施例二的方案進(jìn)行詳細(xì)說(shuō)明。圖3中的If-test(If為InterFace的縮寫(xiě))接口測(cè)試平臺(tái)包括:If-HttpTest模塊、If-Builder模塊和If-Validator模塊;其中:If-httptest模塊是用來(lái)真實(shí)模擬在特定上下文環(huán)境和業(yè)務(wù)場(chǎng)景情況下http請(qǐng)求數(shù)據(jù)的模塊,該http請(qǐng)求基于apachecommonshttpclient3.0.1。If-validator模塊是用來(lái)對(duì)接口返回的數(shù)據(jù)響應(yīng)進(jìn)行校驗(yàn)的模塊,該模塊基于json-schema-validator開(kāi)源框架,引入mockjs語(yǔ)義標(biāo)簽,增加了自定義關(guān)鍵詞“iftest”,這里的自定義關(guān)鍵詞即為預(yù)設(shè)的關(guān)鍵詞,從而提供可擴(kuò)展的語(yǔ)義化驗(yàn)證方式;If-builder模塊是用來(lái)根據(jù)接口的請(qǐng)求數(shù)據(jù)描述自動(dòng)化生成請(qǐng)求參數(shù)值的模塊;下面以對(duì)接口名稱(chēng)為http://example.com/demo.htm的接口進(jìn)行測(cè)試為例進(jìn)行說(shuō)明:假設(shè)接口描述數(shù)據(jù)庫(kù)中http://example.com/demo.htm對(duì)應(yīng)的請(qǐng)求類(lèi)型為get請(qǐng)求,請(qǐng)求數(shù)據(jù)描述和響應(yīng)數(shù)據(jù)描述分別為以下內(nèi)容:1)請(qǐng)求數(shù)據(jù)描述:上述請(qǐng)求數(shù)據(jù)描述表示的含義為http://example.com/demo.htm這一接口名稱(chēng)所表示的接口的請(qǐng)求數(shù)據(jù)中必填的參數(shù)為searchNo,這里的必填參數(shù)也即本發(fā)實(shí)施例二中的請(qǐng)求字段,該searchNo可稱(chēng)為“搜索編號(hào)”,該搜索編號(hào)的數(shù)據(jù)類(lèi)型為字符串型,取值范圍為于0小于5的自然數(shù);2)響應(yīng)數(shù)據(jù)描述為:上述2)響應(yīng)數(shù)據(jù)描述表達(dá)的含義是:包含核心的三個(gè)響應(yīng)字段:itemId/detail/pic,這三個(gè)響應(yīng)字段都是必須的,不能缺少,其次,itemId是一個(gè)11位的數(shù)字,detail需要像http://detail.tmall.com/item.htm?id=15179732651&q=iphoney”一樣,pic是個(gè)圖片鏈接,且圖片像素是:344x228。上述接口測(cè)試平臺(tái)進(jìn)行接口測(cè)試的過(guò)程包括以下步驟:第一步:If-builder模塊獲取接口名稱(chēng)為http://example.com/demo.htm的待測(cè)試接口的請(qǐng)求數(shù)據(jù)描述,如上述所給出的1)請(qǐng)求數(shù)據(jù)描述,該接口名稱(chēng)也即為http的get請(qǐng)求;第二步:If-builder模塊根據(jù)獲取的上述1)請(qǐng)求數(shù)據(jù)描述,確定其中包含的請(qǐng)求字段為搜索編號(hào)searchNo,該請(qǐng)求字段也即為必填參數(shù)字段;上述1)請(qǐng)求數(shù)據(jù)描述中包含的必填參數(shù)字段使用required這一關(guān)鍵詞標(biāo)示的,只有搜索編號(hào)一個(gè)字段;第三步:if-builder模塊根據(jù)iftest這一預(yù)設(shè)的關(guān)鍵字,從上述1)請(qǐng)求數(shù)據(jù)描述中searchNo的約束條件函數(shù)為@natural(0,5);第四步:if-builder模塊根據(jù)請(qǐng)求有一個(gè)必填參數(shù)為searchNo,并且searchNo的值只能為0到5的自然數(shù),生成的請(qǐng)求參數(shù)值為:0、5、不填參數(shù)、null、-1、6、xyz;如表(2)所示,當(dāng)然也可以包括其他的值,這里生成的請(qǐng)求參數(shù)值是按類(lèi)別確定的,理論上來(lái)說(shuō)這些參數(shù)值就可以代表所有的參數(shù)值。表(2)第五步,if-builder模塊根據(jù)searchNo和根據(jù)各請(qǐng)求參數(shù)值實(shí)際生成的各接口請(qǐng)求數(shù)據(jù)如表(3)所示:表(3)case1http://example.com/demo?searchNo=0case2http://example.com/demo?searchNo=5case3http://example.com/democase4http://example.com/demo?searchNo=case5http://example.com/demo?searchNo=-1case6http://example.com/demo?searchNo=6case7http://example.com/demo?searchNo=xyz第六步:If-httptest模塊分別將各請(qǐng)求數(shù)據(jù)(case1至case6中的請(qǐng)求數(shù)據(jù))發(fā)送給所述待測(cè)試接口所在的被測(cè)系統(tǒng)服務(wù)端(SystemUnderTest,SUT),也即服務(wù)器;這里的If-httptest模塊發(fā)送請(qǐng)求數(shù)據(jù),為模擬發(fā)送。第七步:If-validator模塊接收所述服務(wù)器返回的針對(duì)所述請(qǐng)求數(shù)據(jù)的響應(yīng)數(shù)據(jù);假設(shè)此時(shí)針對(duì)http://example.com/demo?searchNo=0這一請(qǐng)求數(shù)據(jù)的響應(yīng)數(shù)據(jù)如下:3)響應(yīng)數(shù)據(jù):上述3)響應(yīng)數(shù)據(jù)表示的意思是返回的響應(yīng)中包含itemId、detail、pic這三個(gè)響應(yīng)字段,并且itemId字段的字段值為12323231451,detail字段的字段值為"http://detail.tmall.com/item.htm?id=15179732651&q=iphone",pic這一字段的字段值為:"http://g.ald.alicdn.com/bao/uploaded/TB1Y7t4FVXXXXc0XFXXtKXbFXXX.jpg"。第八步:If-validator模塊從接口描述數(shù)據(jù)庫(kù)中獲取所述待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,如上述2)響應(yīng)數(shù)據(jù)描述。第九步:If-validator模塊確定獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集中的各響應(yīng)字段分別為:itemId、detail和pic;第十步:If-validator模塊根據(jù)iftest這一預(yù)設(shè)的關(guān)鍵詞,從獲取的所述響應(yīng)數(shù)據(jù)描述中確定itemId這一響應(yīng)字段的字段值應(yīng)滿(mǎn)足約束條件函數(shù)為@bizNum(11,11);detail這一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件函數(shù)為@url('http://detail.tmall.com/item.htm?id=15179732651&q=iphone','all'),該約束條件表示的意思為該detail所在的url應(yīng)包括服務(wù)器的名稱(chēng)、在該服務(wù)器中的路徑、商品編號(hào)和查詢(xún)參數(shù),該約束條件中的'all'表示所有的協(xié)議名、域名、在該服務(wù)器中的路徑、商品編號(hào)和查詢(xún)參數(shù)均要與http://detail.tmall.com/item.htm?id=15179732651&q=iphone中的相匹配,針對(duì)本實(shí)施例三中的這一例子這里的相匹配是指相同;pic這一響應(yīng)字段的字段值應(yīng) 滿(mǎn)足約束條件函數(shù)為@img('344x228');第十一步:If-validator模塊利用第九步中的itemId和@bizNum(11,11)、detail和@url('http://detail.tmall.com/item.htm?id=15179732651&q=iphone','all')、pic和@img('344x228')對(duì)上述3)響應(yīng)數(shù)據(jù)進(jìn)行驗(yàn)證,此時(shí)可知上述3)響應(yīng)數(shù)據(jù)包括itemId、detail和pic這三個(gè)響應(yīng)字段,并且各響應(yīng)字段的字段值均符合相應(yīng)的約束條件,因此,獲得的驗(yàn)證結(jié)果為驗(yàn)證成功。如果服務(wù)端返回如下情況1、情況2或情況3,那么驗(yàn)證結(jié)果均為失敗:情況1:情況2:情況3:情況1中itemId不為11位數(shù),因此,驗(yàn)證結(jié)果為驗(yàn)證失敗;情況2中detail中給出的服務(wù)器的地址為http://detail.taobao.com,而不是http://detail.tmall.com,因此,驗(yàn)證結(jié)果為驗(yàn)證失?。磺闆r3中pic為T(mén)hisisapicture,這是一串字符串,而不是一個(gè)圖片鏈接,因此,驗(yàn)證結(jié)果為驗(yàn)證失??;此外,在運(yùn)行本發(fā)明實(shí)施例一至實(shí)施例三的接口測(cè)試方法的過(guò)程中或者運(yùn)行之后,還可將各步驟的產(chǎn)出的數(shù)據(jù)也作為正在進(jìn)行接口測(cè)試的該待測(cè)試接口的接口描述,圖3中接口描述數(shù)據(jù)庫(kù)的虛線(xiàn)框中的內(nèi)容即為個(gè)步驟產(chǎn)生的數(shù)據(jù),下面通過(guò)實(shí)施例四對(duì)這一方案進(jìn)行說(shuō)明。實(shí)施例四在實(shí)施例一至實(shí)施例三所述的接口測(cè)試方法的基礎(chǔ)上,所述接口測(cè)試方法還可包括以下步驟1至步驟4中的任一個(gè)或多個(gè)步驟:步驟1:將生成的針對(duì)待測(cè)試接口的請(qǐng)求數(shù)據(jù)作為該待測(cè)試接口的接口測(cè)試用例;建立該接口測(cè)試用例與所述待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系。步驟2:根據(jù)所述待測(cè)試接口代碼,生成所述待測(cè)試接口的接口測(cè)試腳本;建立生成的所述待測(cè)試接口的接口測(cè)試腳本與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系。步驟3:根據(jù)所述驗(yàn)證結(jié)果生成針對(duì)所述待測(cè)試接口的接口測(cè)試報(bào)告,并建立該接口測(cè)試報(bào)告與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系,所述接口測(cè)試報(bào)告包括已驗(yàn)證的待測(cè)試接口的請(qǐng)求數(shù)據(jù)、驗(yàn)證結(jié)果、驗(yàn)證結(jié)果狀態(tài)和驗(yàn)證結(jié)果失敗原因分析中的一種或多種,所述驗(yàn)證結(jié)果狀態(tài)包括成功和失敗。步驟4:將接收的所述響應(yīng)數(shù)據(jù)作為待測(cè)試接口的測(cè)試數(shù)據(jù);建立該接口測(cè)試數(shù)據(jù)與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系。需要說(shuō)明的是,上面以步驟1至步驟4的寫(xiě)法是了方便表述,實(shí)際上各步驟之間并不分先后順序。上述步驟1至步驟4中每個(gè)步驟建立關(guān)聯(lián)關(guān)系之后添加存儲(chǔ)該關(guān)聯(lián)關(guān)系至接口描述數(shù)據(jù)庫(kù)的步驟時(shí),還可以構(gòu)成在實(shí)施例一至實(shí)施例三中任一的接口測(cè)試方法基礎(chǔ)上的接口描述數(shù)據(jù)庫(kù)生成方法。上述步驟1至步驟4的過(guò)程可以如圖4所示,圖4中展示的是一個(gè)循環(huán),對(duì)某一接口A進(jìn)行了測(cè)試之后,獲得了該接口A的完整的接口描述數(shù)據(jù)(包括接口A的接口請(qǐng)求數(shù)據(jù)描述、接口響應(yīng)數(shù)據(jù)描述、接口測(cè)試數(shù)據(jù)、接口測(cè)試用例、接口測(cè)試腳本和接口測(cè)試報(bào)告),后續(xù)代碼持續(xù)集成(CodeContinuousIntegration)時(shí)針對(duì)該接口A進(jìn)行測(cè)試時(shí),還可以直接利用已獲得的該接口A的完整的接口描述數(shù)據(jù)。也就是說(shuō)這里的循環(huán)指的是后續(xù)代碼的持續(xù)集成中該接口測(cè)試方法的循環(huán),這里的代碼的持續(xù)集成是是一種軟件開(kāi)發(fā)實(shí)踐,當(dāng)集成 了新的代碼或者修改了原有代碼后,自動(dòng)化的進(jìn)行驗(yàn)證和回歸測(cè)試,保證集成后的質(zhì)量。通過(guò)本發(fā)明實(shí)施例四的方案,接口描述數(shù)據(jù)庫(kù)中原有請(qǐng)求數(shù)據(jù)描述和響應(yīng)數(shù)據(jù)描述,在每一測(cè)試的接口描述在順利完成一次全面測(cè)試后,均可獲得該接口的包括接口測(cè)試用例、接口測(cè)試報(bào)告、接口測(cè)試數(shù)據(jù)和接口測(cè)試腳本,進(jìn)一步豐富了接口的接口描述,并且由于這份待測(cè)試接口的接口描述還可以用在后續(xù)的該接口代碼的持續(xù)集中,因此激活了待測(cè)試接口的接口描述,使得接口描述具備精確性、可維護(hù)性、可測(cè)試性、可驗(yàn)證性,從而使得項(xiàng)目組成員可以強(qiáng)依賴(lài)這份接口說(shuō)明展開(kāi)各自后續(xù)的工作,解決前后端研發(fā)各自脫離對(duì)方環(huán)境的高效測(cè)試,降低前后端溝通成本,提高聯(lián)調(diào)效率,并且可以高效的開(kāi)發(fā)穩(wěn)定的自動(dòng)化測(cè)試腳本保證接口全生命周期的質(zhì)量和穩(wěn)定,進(jìn)而保證接口質(zhì)量乃至整個(gè)軟件系統(tǒng)和產(chǎn)品的質(zhì)量,提升研發(fā)效率,降低研發(fā)成本。下面對(duì)獲得的上述接口測(cè)試用例、接口測(cè)試報(bào)告、接口測(cè)試數(shù)據(jù)和接口測(cè)試腳本具體如何在接口持續(xù)集成中的使用進(jìn)行說(shuō)明:代碼的持續(xù)集成可分為前端代碼持續(xù)集成和后端代碼持續(xù)集成,而代碼持續(xù)集成的需要兩個(gè)要素,其一是可執(zhí)行的腳本,其二是任務(wù)調(diào)度系統(tǒng);每一個(gè)可執(zhí)行腳本好比一個(gè)可執(zhí)行的測(cè)試用例,測(cè)試用例中包括了:測(cè)試數(shù)據(jù)、預(yù)期結(jié)果(斷言驗(yàn)證點(diǎn))等,當(dāng)腳本執(zhí)行后,就可以獲得這個(gè)用例所對(duì)應(yīng)的測(cè)試報(bào)告;而任務(wù)調(diào)度系統(tǒng),目前業(yè)界主流的是hudson平臺(tái),作用就是在特定條件下自動(dòng)觸發(fā)腳本執(zhí)行,具體在此就不贅述。目前在此專(zhuān)利的場(chǎng)景中,裝置生成了后端代碼持續(xù)集成中所需要的可執(zhí)行腳本(junit測(cè)試腳本),把此腳本放到一個(gè)java的項(xiàng)目工程中,然后在hudson平臺(tái)上配置后,即可實(shí)現(xiàn)代碼持續(xù)回歸測(cè)試,然后通過(guò)測(cè)試報(bào)告來(lái)為用戶(hù)提供判斷代碼持續(xù)集成質(zhì)量的依據(jù);同樣此裝置中產(chǎn)生的接口測(cè)試數(shù)據(jù),為前端代碼持續(xù)集成提供了測(cè)試數(shù)據(jù),可用于前端代碼持續(xù)集成或者UI自動(dòng)化回歸測(cè)試。圖5中給出本申請(qǐng)實(shí)施例的方案在具體項(xiàng)目中運(yùn)用的示例:具體流程描述如下:第一步:前后端共同約定接口描述(這里主要包括接口請(qǐng)求描述和接口響應(yīng)描述),通過(guò)某種方式(目前是第三方接口管理平臺(tái))把接口描述記錄到接口描述數(shù)據(jù)庫(kù)中;第二步:測(cè)試介入對(duì)接口描述進(jìn)行測(cè)試,并且根據(jù)實(shí)際情況增加語(yǔ)義標(biāo)簽;上述對(duì)接口描述進(jìn)行測(cè)試,其實(shí)就是軟件工程里所說(shuō)的“靜態(tài)測(cè)試”。這里主要是測(cè)試接口描述的是否完善,是否妥當(dāng),是否符合最優(yōu)實(shí)踐,是否符合業(yè)務(wù)慣例和規(guī)范,是一個(gè)驗(yàn)證的過(guò)程。第三步:前端、后端、測(cè)試完全解耦的并行工作和自測(cè),測(cè)試通過(guò)If-Test平臺(tái)進(jìn)行測(cè)試腳本開(kāi)發(fā);第四步:通過(guò)穩(wěn)定的可用于持續(xù)集成的自動(dòng)化測(cè)試腳本,可以及時(shí)的反饋當(dāng)前接口的生命狀態(tài),并且通過(guò)模擬真實(shí)請(qǐng)求發(fā)送獲得的服務(wù)端真實(shí)的返回?cái)?shù)據(jù),反哺于接口描述,為進(jìn)一步拓展功能提供可能(例如:前端代碼的持續(xù)回歸)。實(shí)施例五基于與實(shí)施例一至實(shí)施例四的同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例五提供一種接口測(cè)試裝置,其結(jié)構(gòu)示意圖如圖6所示,包括:請(qǐng)求數(shù)據(jù)生成單元61、發(fā)送單元62、接收單元63、獲取單元64和驗(yàn)證單元65,其中:請(qǐng)求數(shù)據(jù)生成單元61,用于生成針對(duì)待測(cè)試接口的請(qǐng)求數(shù)據(jù);發(fā)送單元62,用于將所述請(qǐng)求數(shù)據(jù)發(fā)送給所述待測(cè)試接口所在的服務(wù)器;接收單元63,用于接收所述服務(wù)器返回的針對(duì)所述請(qǐng)求數(shù)據(jù)的響應(yīng)數(shù)據(jù);獲取單元64,用于從接口描述數(shù)據(jù)庫(kù)中獲取所述待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,所述接口描述數(shù)據(jù)庫(kù)中包括接口名稱(chēng)及其對(duì)應(yīng)的響應(yīng)數(shù)據(jù)描述,所述響應(yīng)數(shù)據(jù)描述包括正確的響應(yīng)數(shù)據(jù)應(yīng)包括的響應(yīng)字段集以及該響應(yīng)字段集中的每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件;驗(yàn)證單元65,用于利用獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集及該響應(yīng)字段集中的每一響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件對(duì)接收的所述響應(yīng)數(shù)據(jù)進(jìn)行驗(yàn)證,獲得驗(yàn)證結(jié)果。優(yōu)選地,所述接口描述數(shù)據(jù)庫(kù)中的描述符合設(shè)定語(yǔ)法格式,該設(shè)定語(yǔ)法格式包含由關(guān)鍵詞及其對(duì)應(yīng)的語(yǔ)義函數(shù)構(gòu)成的語(yǔ)義標(biāo)簽,響應(yīng)字段的字段值應(yīng)滿(mǎn)足的約束條件由預(yù)設(shè)的關(guān)鍵詞及其對(duì)應(yīng)的約束條件函數(shù)構(gòu)成的語(yǔ)義標(biāo)簽表示;所述驗(yàn)證單元65,具體用于確定獲取的所述響應(yīng)數(shù)據(jù)描述中的響應(yīng)字段集中包括的各響應(yīng)字段;針對(duì)確定的每一響應(yīng)字段,根據(jù)所述預(yù)設(shè)的關(guān)鍵詞,從獲取的所述響應(yīng)數(shù)據(jù)描述中確定該響應(yīng)字段的字段值對(duì)應(yīng)的約束條件函數(shù);判斷接收的所述響應(yīng)數(shù)據(jù)中包含的全部字段構(gòu)成的集合是否與獲取的所述數(shù)據(jù)響應(yīng)描述中的響應(yīng)字段集構(gòu)成的集合相等,以及各響應(yīng)字段的字段值是否均滿(mǎn)足對(duì)應(yīng)的約束條件函數(shù);若接收的所述響應(yīng)數(shù)據(jù)中包含的全部字段構(gòu)成的集合與獲取的所述數(shù)據(jù)響應(yīng)描述中的響應(yīng)字段集構(gòu)成的集合相等,且各響應(yīng)字段的字段值均滿(mǎn)足對(duì)應(yīng)的約束條件函數(shù),則確定驗(yàn)證成功;反之,則確定驗(yàn)證失敗。優(yōu)選地,所述接口描述數(shù)據(jù)庫(kù)中還包括接口名稱(chēng)及其對(duì)應(yīng)的請(qǐng)求類(lèi)型和請(qǐng)求數(shù)據(jù)描述,所述請(qǐng)求數(shù)據(jù)描述包括正確的請(qǐng)求數(shù)據(jù)應(yīng)包括的請(qǐng)求字段集以及該請(qǐng)求字段集中的每一請(qǐng)求字段應(yīng)滿(mǎn)足的約束條件;所述請(qǐng)求數(shù)據(jù)生成單元61,具體用于從接口描述數(shù)據(jù)庫(kù)中獲取所述待測(cè)試接口的接口名稱(chēng)對(duì)應(yīng)請(qǐng)求數(shù)據(jù)描述和請(qǐng)求類(lèi)型;根據(jù)獲取的所述請(qǐng)求數(shù)據(jù)描述中包含的各請(qǐng)求字段字段及每一請(qǐng)求字段的字段值應(yīng)滿(mǎn)足的約束條件,生成請(qǐng)求類(lèi)型為獲取的所述請(qǐng)求類(lèi)型的針對(duì)所述待測(cè)試接口的請(qǐng)求數(shù)據(jù)。優(yōu)選地,所述接口描述數(shù)據(jù)庫(kù)中的描述符合設(shè)定語(yǔ)法格式,該設(shè)定語(yǔ)法格式包含由關(guān)鍵詞及其對(duì)應(yīng)的語(yǔ)義函數(shù)構(gòu)成的語(yǔ)義標(biāo)簽,請(qǐng)求字段的字段值應(yīng)滿(mǎn)足的約束條件由預(yù)設(shè)的關(guān)鍵詞及對(duì)應(yīng)的約束條件函數(shù)構(gòu)成的語(yǔ)義標(biāo)簽表示;所述請(qǐng)求數(shù)據(jù)生成單元61,包括:約束條件函數(shù)獲取子單元和請(qǐng)求數(shù)據(jù)生成子單元;所述約束條件函數(shù)獲取子單元,用于根據(jù)所述預(yù)設(shè)的關(guān)鍵詞,從獲取的所述請(qǐng)求數(shù)據(jù)描述中確定每一請(qǐng)求字段的字段值對(duì)應(yīng)的約束條件函數(shù);所述請(qǐng)求數(shù)據(jù)生成子單元,用于根據(jù)每一請(qǐng)求字段的字段值對(duì)應(yīng)的約束條件函數(shù)生成請(qǐng)求類(lèi)型為獲取的所述請(qǐng)求類(lèi)型的針對(duì)所述待測(cè)試接口的請(qǐng)求數(shù)據(jù)。優(yōu)選地,所述請(qǐng)求數(shù)據(jù)生成子單元,具體用于根據(jù)每一請(qǐng)求字段的字段值對(duì)應(yīng)的約束條件函數(shù)生成請(qǐng)求參數(shù)值,該請(qǐng)求參數(shù)值為業(yè)務(wù)相關(guān)的參數(shù)值或者業(yè)務(wù)無(wú)關(guān)的參數(shù)值;利用各請(qǐng)求字段和相應(yīng)的請(qǐng)求參數(shù)值生成請(qǐng)求類(lèi)型為獲取的所述請(qǐng)求類(lèi)型的針對(duì)所述待測(cè)試接口的請(qǐng)求數(shù)據(jù)。優(yōu)選地,所述裝置還包括:第一關(guān)聯(lián)關(guān)系建立單元66,用于將生成的針對(duì)待測(cè)試接口的請(qǐng)求數(shù)據(jù)作為該待測(cè)試接口的接口測(cè)試用例;建立該接口測(cè)試用例與所述待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系。優(yōu)選地,所述發(fā)送單元62,具體用于根據(jù)所述請(qǐng)求數(shù)據(jù),生成所述待測(cè)試接口的接口測(cè)試代碼;通過(guò)運(yùn)行生成的所述接口測(cè)試代碼實(shí)現(xiàn)將所述數(shù)據(jù)發(fā)送給所述待測(cè)試接口;優(yōu)選地,所述裝置還包括:第二關(guān)聯(lián)關(guān)系建立單元67,用于根據(jù)所述待測(cè)試接口代碼,生成所述待測(cè)試接口的接口測(cè)試腳本;建立生成的所述待測(cè)試接口的接口測(cè)試腳本與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系。優(yōu)選地,所述裝置還包括:第三關(guān)聯(lián)關(guān)系建立單元68,將接收的所述響應(yīng)數(shù)據(jù)作為待測(cè)試接口的測(cè)試數(shù)據(jù);建立該接口測(cè)試數(shù)據(jù)與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系。優(yōu)選地,所述裝置還包括:第四關(guān)聯(lián)關(guān)系建立單元69,根據(jù)所述驗(yàn)證結(jié)果生成針對(duì)所述待測(cè)試接口的接口測(cè)試報(bào)告,并建立該接口測(cè)試報(bào)告與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān) 系,所述接口測(cè)試報(bào)告包括已驗(yàn)證的待測(cè)試接口的請(qǐng)求數(shù)據(jù)、驗(yàn)證結(jié)果、驗(yàn)證結(jié)果狀態(tài)和驗(yàn)證結(jié)果失敗原因分析中的一種或多種,所述驗(yàn)證結(jié)果狀態(tài)包括成功和失敗。本申請(qǐng)實(shí)施例五中各單元的具體實(shí)現(xiàn)過(guò)程可參考實(shí)施例一至實(shí)施例四中接口測(cè)試方法部分的描述,這里不再贅述。實(shí)施例六基于與實(shí)施例一至實(shí)施例四的同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例六基于實(shí)施例五中的接口測(cè)試裝置提供一種接口描述數(shù)據(jù)庫(kù)生成裝置,其結(jié)構(gòu)示意圖如圖7所示,包括:第一關(guān)聯(lián)關(guān)系建立單元71、第二關(guān)聯(lián)關(guān)系建立單元72、第三關(guān)聯(lián)關(guān)系建立單元73、第四關(guān)聯(lián)關(guān)系建立單元74和存儲(chǔ)單元75;其中:第一關(guān)聯(lián)關(guān)系建立單元71,用于根據(jù)待測(cè)試接口代碼,生成所述待測(cè)試接口的接口測(cè)試腳本;建立生成的所述待測(cè)試接口的接口測(cè)試腳本與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系,所述待測(cè)試接口代碼是根據(jù)所述請(qǐng)求數(shù)據(jù)生成的;第二關(guān)聯(lián)關(guān)系建立單元72,用于將生成針對(duì)待測(cè)試接口的請(qǐng)求數(shù)據(jù)作為該待測(cè)試接口的接口測(cè)試用例,建立該接口測(cè)試用例與所述待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系;第三關(guān)聯(lián)關(guān)系建立單元73,用于將接收的所述響應(yīng)數(shù)據(jù)作為待測(cè)試接口的測(cè)試數(shù)據(jù),建立該接口測(cè)試數(shù)據(jù)與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系;第四關(guān)聯(lián)關(guān)系建立單元74,用于根據(jù)所述驗(yàn)證結(jié)果生成針對(duì)所述待測(cè)試接口的接口測(cè)試報(bào)告,建立該接口測(cè)試報(bào)告與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系,所述接口測(cè)試報(bào)告包括已驗(yàn)證的待測(cè)試接口的請(qǐng)求數(shù)據(jù)、驗(yàn)證結(jié)果、驗(yàn)證結(jié)果狀態(tài)和驗(yàn)證結(jié)果失敗原因分析中的一種或多種,所述驗(yàn)證結(jié)果狀態(tài)包括成功和失??;存儲(chǔ)單元75,用于將所述待測(cè)試接口的接口測(cè)試腳本與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系、接口測(cè)試用例與所述待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系、 接口測(cè)試報(bào)告與該待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系和待測(cè)試接口的接口名稱(chēng)的關(guān)聯(lián)關(guān)系存儲(chǔ)在接口描述數(shù)據(jù)庫(kù)中。本申請(qǐng)實(shí)施例六中各單元的具體實(shí)現(xiàn)過(guò)程可參考實(shí)施例一至實(shí)施例四中接口測(cè)試方法部分的描述,這里不再贅述。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例可以通過(guò)硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM,U盤(pán),移動(dòng)硬盤(pán)等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施例中終端中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的終端中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)終端中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。當(dāng)前第1頁(yè)1 2 3 
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
垦利县| 贺兰县| 林西县| 郓城县| 鄂伦春自治旗| 子长县| 平顺县| 安图县| 长垣县| 额济纳旗| 赫章县| 平定县| 闽清县| 青州市| 济阳县| 铁力市| 商都县| 棋牌| 冷水江市| 镇江市| 垫江县| 广丰县| 榆中县| 柏乡县| 疏勒县| 南汇区| 平潭县| 都江堰市| 威远县| 洛隆县| 马关县| 日土县| 沙河市| 同德县| 孙吴县| 诸城市| 巴彦县| 富裕县| 景泰县| 正定县| 应城市|