亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種接口自動(dòng)化測(cè)試方法、裝置和計(jì)算設(shè)備的制造方法

文檔序號(hào):10471046閱讀:464來(lái)源:國(guó)知局
一種接口自動(dòng)化測(cè)試方法、裝置和計(jì)算設(shè)備的制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種接口自動(dòng)化測(cè)試方法,該方法包括:向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求;接收第一接口和第二接口響應(yīng)測(cè)試請(qǐng)求返回的第一JSON數(shù)據(jù)和第二JSON數(shù)據(jù);將第一JSON數(shù)據(jù)和第二JSON數(shù)據(jù)分別轉(zhuǎn)化為第一字典對(duì)象和第二字典對(duì)象;比對(duì)該第一字典對(duì)象和第二字典對(duì)象。本發(fā)明還公開(kāi)了一種接口自動(dòng)化測(cè)試裝置和相應(yīng)的計(jì)算設(shè)備。
【專(zhuān)利說(shuō)明】
一種接口自動(dòng)化測(cè)試方法、裝置和計(jì)算設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種接口自動(dòng)化測(cè)試方法、裝置和計(jì)算設(shè)備。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,開(kāi)發(fā)的軟件項(xiàng)目工程也越來(lái)越多,在軟件項(xiàng)目工程中接口自動(dòng)化測(cè)試是一項(xiàng)非常重要的測(cè)試環(huán)節(jié)。接口自動(dòng)化測(cè)試主要測(cè)試這些軟件項(xiàng)目工程(或者理解為軟件系統(tǒng))對(duì)外部提供的接口,以驗(yàn)證這些接口的正確性和穩(wěn)定性。接口自動(dòng)化測(cè)試的重點(diǎn)是要檢查數(shù)據(jù)的交換,具體是通過(guò)向服務(wù)器傳遞接口的測(cè)試參數(shù),再接收服務(wù)器返回的返回結(jié)果,通過(guò)驗(yàn)證該返回結(jié)果的正確性,以完成對(duì)接口的測(cè)試。
[0003]通常,當(dāng)軟件項(xiàng)目工程進(jìn)行更新后,需要對(duì)更新后的接口進(jìn)行接口自動(dòng)化測(cè)試,通過(guò)比較更新后的接口的返回結(jié)果與更新前的接口的返回結(jié)果得到兩個(gè)接口輸出的不同,來(lái)判斷更新后的接口是否與預(yù)期的設(shè)計(jì)符合。
[0004]由于接口自動(dòng)化測(cè)試中得到的接口返回結(jié)果一般為JSON格式字符串,因此現(xiàn)有技術(shù)中通常采用傳統(tǒng)的字符串比對(duì)的方式來(lái)對(duì)兩個(gè)接口的返回結(jié)果進(jìn)行比較。而僅僅使用字符串比對(duì)的方式,無(wú)法精確的定位究竟是哪一個(gè)JSON節(jié)點(diǎn)出現(xiàn)不一致的情況,并且JSON字符串往往會(huì)出現(xiàn)某些節(jié)點(diǎn)的順序隨機(jī)、內(nèi)容一致的情況,這種情況是字符串比對(duì)的方式無(wú)法檢測(cè)出的。
[0005]因此,需要一種新型的接口自動(dòng)化測(cè)試方法。

【發(fā)明內(nèi)容】

[0006]鑒于此,本發(fā)明提供了一種新的接口自動(dòng)化測(cè)試方案,以力圖解決或至少緩解上面存在的問(wèn)題。
[0007]根據(jù)本發(fā)明的一個(gè)方面,提供了一種接口自動(dòng)化測(cè)試方法,該方法包括:向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求;接收第一接口和第二接口響應(yīng)測(cè)試請(qǐng)求返回的第一JSON數(shù)據(jù)和第二 JSON數(shù)據(jù);將第一 JSON數(shù)據(jù)和第二 JSON數(shù)據(jù)分別轉(zhuǎn)化為第一字典對(duì)象和第二字典對(duì)象;比對(duì)第一字典對(duì)象和第二字典對(duì)象,包括:遍歷第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn);根據(jù)節(jié)點(diǎn)類(lèi)型選取相應(yīng)的比對(duì)規(guī)則;根據(jù)比對(duì)規(guī)則比對(duì)第一字典對(duì)象和第二字典對(duì)象中的對(duì)應(yīng)節(jié)點(diǎn)是否相等,若不相等,則記錄此節(jié)點(diǎn)。
[0008]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法中,向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求的步驟之后,還包括:接收第一接口和第二接口返回的響應(yīng)狀態(tài)碼;若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送成功,則存儲(chǔ)相應(yīng)的接口地址和該接口返回的數(shù)據(jù);若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送失敗,則檢測(cè)接口重發(fā)次數(shù)是否達(dá)到閾值;若否,則重新發(fā)送測(cè)試請(qǐng)求,將該接口重發(fā)次數(shù)加I。
[0009]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法中,其中字典對(duì)象為diet類(lèi)型對(duì)象,將第一 JSON數(shù)據(jù)和第二 JSON數(shù)據(jù)分別轉(zhuǎn)化為第一字典對(duì)象和第二字典對(duì)象的步驟包括:使用simple json庫(kù)中的loads方法將JSON數(shù)據(jù)轉(zhuǎn)化為diet類(lèi)型對(duì)象。
[0010]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法中,通過(guò)深度優(yōu)先方法遍歷所述第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),包括:訪(fǎng)問(wèn)字典對(duì)象的出發(fā)節(jié)點(diǎn),并將其標(biāo)記為已訪(fǎng)問(wèn)過(guò);從出發(fā)點(diǎn)出發(fā)依次搜索出發(fā)節(jié)點(diǎn)的每個(gè)鄰接節(jié)點(diǎn);若鄰接節(jié)點(diǎn)未曾訪(fǎng)問(wèn)過(guò),則以該鄰接節(jié)點(diǎn)為新的出發(fā)節(jié)點(diǎn)繼續(xù)進(jìn)行深度優(yōu)先方法進(jìn)行遍歷,直至字典對(duì)象中所有和出發(fā)節(jié)點(diǎn)有路徑相通的節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止;若字典對(duì)象中仍有未訪(fǎng)問(wèn)的節(jié)點(diǎn),則另選一個(gè)尚未訪(fǎng)問(wèn)的節(jié)點(diǎn)作為新的出發(fā)點(diǎn)重復(fù)上述過(guò)程,直至字典對(duì)象中所有節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止。
[0011 ]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法中,比對(duì)規(guī)則包括:比較節(jié)點(diǎn)的類(lèi)型和值;若類(lèi)型和值均相等,則兩個(gè)節(jié)點(diǎn)相等。
[0012]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法中,比對(duì)規(guī)則包括:忽略節(jié)點(diǎn)的類(lèi)型;比較節(jié)點(diǎn)的值;若值相等,則兩個(gè)節(jié)點(diǎn)相等。
[0013]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法中,比對(duì)規(guī)則包括:忽略節(jié)點(diǎn)的值;比較節(jié)點(diǎn)的類(lèi)型;若類(lèi)型相等,則兩個(gè)節(jié)點(diǎn)相等。
[0014]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法中,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素排列無(wú)序時(shí),比對(duì)規(guī)則包括:計(jì)算集合節(jié)點(diǎn)的長(zhǎng)度;比較長(zhǎng)度,若長(zhǎng)度一致,則兩個(gè)節(jié)點(diǎn)相等。
[0015]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法中,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素個(gè)數(shù)隨機(jī)時(shí),比對(duì)規(guī)則包括:計(jì)算集合節(jié)點(diǎn)的元素個(gè)數(shù);比較元素個(gè)數(shù),若元素個(gè)數(shù)相等,則兩個(gè)節(jié)點(diǎn)相等。
[0016]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法中,比對(duì)規(guī)則包括:忽略比較特定名稱(chēng)的節(jié)點(diǎn)。
[0017]根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種接口自動(dòng)化測(cè)試裝置,該裝置包括:請(qǐng)求發(fā)送模塊,適于向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求;響應(yīng)接收模塊,適于接收第一接口和第二接口響應(yīng)測(cè)試請(qǐng)求返回的第一JSON數(shù)據(jù)和第二JSON數(shù)據(jù);比較模塊,適于將第一JSON數(shù)據(jù)和第二 JSON數(shù)據(jù)分別轉(zhuǎn)化為第一字典對(duì)象和第二字典對(duì)象;比較模塊還適于比對(duì)第一字典對(duì)象和第二字典對(duì)象,包括:適于遍歷第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)類(lèi)型選取相應(yīng)的比對(duì)規(guī)則,根據(jù)比對(duì)規(guī)則比對(duì)第一字典對(duì)象和第二字典對(duì)象中的對(duì)應(yīng)節(jié)點(diǎn)是否相等,若不相等,則記錄此節(jié)點(diǎn)。
[0018]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置中,響應(yīng)接收模塊還適于接收第一接口和第二接口返回的響應(yīng)狀態(tài)碼;若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送成功,則存儲(chǔ)相應(yīng)的接口地址和該接口返回的數(shù)據(jù);若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送失敗,則檢測(cè)接口重發(fā)次數(shù)是否達(dá)到閾值;若否,則請(qǐng)求發(fā)送模塊重新發(fā)送測(cè)試請(qǐng)求,將該接口重發(fā)次數(shù)加I。
[0019]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置中,其中字典對(duì)象為diet類(lèi)型對(duì)象,比較模塊還適于使用simple json庫(kù)中的loads方法將JSON數(shù)據(jù)轉(zhuǎn)化為diet類(lèi)型對(duì)象。
[0020]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置中,比較模塊還適于通過(guò)深度優(yōu)先方法遍歷第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),包括:適于訪(fǎng)問(wèn)字典對(duì)象的出發(fā)節(jié)點(diǎn),并將其標(biāo)記為已訪(fǎng)問(wèn)過(guò),從出發(fā)點(diǎn)出發(fā)依次搜索出發(fā)節(jié)點(diǎn)的每個(gè)鄰接節(jié)點(diǎn),若鄰接節(jié)點(diǎn)未曾訪(fǎng)問(wèn)過(guò),則以該鄰接節(jié)點(diǎn)為新的出發(fā)節(jié)點(diǎn)繼續(xù)進(jìn)行深度優(yōu)先方法進(jìn)行遍歷,直至字典對(duì)象中所有和出發(fā)節(jié)點(diǎn)有路徑相通的節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止,若字典對(duì)象中仍有未訪(fǎng)問(wèn)的節(jié)點(diǎn),則另選一個(gè)尚未訪(fǎng)問(wèn)的節(jié)點(diǎn)作為新的出發(fā)點(diǎn)重復(fù)上述過(guò)程,直至字典對(duì)象中所有節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止。
[0021 ]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置中,所述比對(duì)規(guī)則包括:比較節(jié)點(diǎn)的類(lèi)型和值;若類(lèi)型和值均相等,則兩個(gè)節(jié)點(diǎn)相等。
[0022]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置中,比對(duì)規(guī)則包括:忽略節(jié)點(diǎn)的類(lèi)型;比較節(jié)點(diǎn)的值;若值相等,則兩個(gè)節(jié)點(diǎn)相等。
[0023]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置中,比對(duì)規(guī)則包括:忽略節(jié)點(diǎn)的值;比較節(jié)點(diǎn)的類(lèi)型;若類(lèi)型相等,則兩個(gè)節(jié)點(diǎn)相等。
[0024]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置中,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素排列無(wú)序時(shí),比對(duì)規(guī)則包括:計(jì)算集合節(jié)點(diǎn)的長(zhǎng)度;比較長(zhǎng)度,若長(zhǎng)度一致,則兩個(gè)節(jié)點(diǎn)相等。
[0025]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置中,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素個(gè)數(shù)隨機(jī)時(shí),比對(duì)規(guī)則包括:計(jì)算集合節(jié)點(diǎn)的元素個(gè)數(shù);比較元素個(gè)數(shù),若元素個(gè)數(shù)相等,則兩個(gè)節(jié)點(diǎn)相等。
[0026]可選地,在根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置中,比對(duì)規(guī)則包括:忽略比較特定名稱(chēng)的節(jié)點(diǎn)。
[0027]根據(jù)本發(fā)明的還有一個(gè)方面,還提供了一種計(jì)算設(shè)備,包括根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置。
[0028]根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方案,將兩個(gè)接口返回的JSON數(shù)據(jù)轉(zhuǎn)化為便于查詢(xún)和處理的字典對(duì)象后,遍歷其中各節(jié)點(diǎn),并進(jìn)行逐一對(duì)比,實(shí)現(xiàn)了對(duì)兩個(gè)接口返回?cái)?shù)據(jù)中不同節(jié)點(diǎn)的精確定位,同時(shí)針對(duì)不同節(jié)點(diǎn)類(lèi)型對(duì)JSON數(shù)據(jù)根據(jù)相應(yīng)的比對(duì)規(guī)則來(lái)對(duì)比,滿(mǎn)足了不同測(cè)試場(chǎng)景下的測(cè)試需求。
【附圖說(shuō)明】
[0029]為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來(lái)描述某些說(shuō)明性方面,這些方面指示了可以實(shí)踐本文所公開(kāi)的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過(guò)結(jié)合附圖閱讀下面的詳細(xì)描述,本公開(kāi)的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯。遍及本公開(kāi),相同的附圖標(biāo)記通常指代相同的部件或元素。
[0030]圖1示出了根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的計(jì)算設(shè)備100的結(jié)構(gòu)示意圖;
[0031]圖2示出了根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的接口自動(dòng)化測(cè)試方法200的
[0032]示意圖;以及
[0033]圖3示出了根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的接口自動(dòng)化測(cè)試裝置300的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0034]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0035]圖1示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的計(jì)算設(shè)備100的結(jié)構(gòu)示意圖。參照?qǐng)D1,在基本的配置102中,計(jì)算設(shè)備100典型地包括系統(tǒng)存儲(chǔ)器106和一個(gè)或者多個(gè)處理器104。存儲(chǔ)器總線(xiàn)108可以用于在處理器104和系統(tǒng)存儲(chǔ)器106之間的通信。
[0036]取決于期望的配置,處理器104可以是任何類(lèi)型的處理,包括但不限于:微處理器((此)、微控制器(yC)、數(shù)字信息處理器(DSP)或者它們的任何組合。處理器104可以包括諸如一級(jí)高速緩存110和二級(jí)高速緩存112之類(lèi)的一個(gè)或者多個(gè)級(jí)別的高速緩存、處理器核心114和寄存器116。示例的處理器核心114可以包括運(yùn)算邏輯單元(ALU)、浮點(diǎn)數(shù)單元(FPU)、數(shù)字信號(hào)處理核心(DSP核心)或者它們的任何組合。示例的存儲(chǔ)器控制器118可以與處理器104—起使用,或者在一些實(shí)現(xiàn)中,存儲(chǔ)器控制器118可以是處理器104的一個(gè)內(nèi)部部分。
[0037]取決于期望的配置,系統(tǒng)存儲(chǔ)器106可以是任意類(lèi)型的存儲(chǔ)器,包括但不限于:易失性存儲(chǔ)器(諸如RAM)、非易失性存儲(chǔ)器(諸如R0M、閃存等)或者它們的任何組合。系統(tǒng)存儲(chǔ)器106可以包括操作系統(tǒng)120、一個(gè)或者多個(gè)應(yīng)用122以及程序數(shù)據(jù)124。在一些實(shí)施方式中,應(yīng)用122可以布置為在操作系統(tǒng)上利用程序數(shù)據(jù)124進(jìn)行操作。
[0038]計(jì)算設(shè)備100還可以包括有助于從各種接口設(shè)備(例如,輸出設(shè)備142、外設(shè)接口144和通信設(shè)備146)到基本配置102經(jīng)由總線(xiàn)/接口控制器130的通信的接口總線(xiàn)140。示例的輸出設(shè)備142包括圖形處理單元148和音頻處理單元150。它們可以被配置為有助于經(jīng)由一個(gè)或者多個(gè)A/V端口 152與諸如顯示器或者揚(yáng)聲器之類(lèi)的各種外部設(shè)備進(jìn)行通信。示例外設(shè)接口 144可以包括串行接口控制器154和并行接口控制器156,它們可以被配置為有助于經(jīng)由一個(gè)或者多個(gè)I/O端口 158和諸如輸入設(shè)備(例如,鍵盤(pán)、鼠標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備)或者其他外設(shè)(例如打印機(jī)、掃描儀等)之類(lèi)的外部設(shè)備進(jìn)行通信。示例的通信設(shè)備146可以包括網(wǎng)絡(luò)控制器160,其可以被布置為便于經(jīng)由一個(gè)或者多個(gè)通信端口 164與一個(gè)或者多個(gè)其他計(jì)算設(shè)備162通過(guò)網(wǎng)絡(luò)通信鏈路的通信。
[0039]網(wǎng)絡(luò)通信鏈路可以是通信介質(zhì)的一個(gè)示例。通信介質(zhì)通??梢泽w現(xiàn)為在諸如載波或者其他傳輸機(jī)制之類(lèi)的調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,并且可以包括任何信息遞送介質(zhì)?!罢{(diào)制數(shù)據(jù)信號(hào)”可以這樣的信號(hào),它的數(shù)據(jù)集中的一個(gè)或者多個(gè)或者它的改變可以在信號(hào)中編碼信息的方式進(jìn)行。作為非限制性的示例,通信介質(zhì)可以包括諸如有線(xiàn)網(wǎng)絡(luò)或者專(zhuān)線(xiàn)網(wǎng)絡(luò)之類(lèi)的有線(xiàn)介質(zhì),以及諸如聲音、射頻(RF)、微波、紅外(IR)或者其它無(wú)線(xiàn)介質(zhì)在內(nèi)的各種無(wú)線(xiàn)介質(zhì)。這里使用的術(shù)語(yǔ)計(jì)算機(jī)可讀介質(zhì)可以包括存儲(chǔ)介質(zhì)和通信介質(zhì)二者。
[0040]計(jì)算設(shè)備100可以實(shí)現(xiàn)為小尺寸便攜(或者移動(dòng))電子設(shè)備的一部分,這些電子設(shè)備可以是諸如蜂窩電話(huà)、個(gè)人數(shù)字助理(PDA)、個(gè)人媒體播放器設(shè)備、無(wú)線(xiàn)網(wǎng)絡(luò)瀏覽設(shè)備、個(gè)人頭戴設(shè)備、應(yīng)用專(zhuān)用設(shè)備、或者可以包括上面任何功能的混合設(shè)備。計(jì)算設(shè)備100還可以實(shí)現(xiàn)為包括桌面計(jì)算機(jī)和筆記本計(jì)算機(jī)配置的個(gè)人計(jì)算機(jī)。在一些實(shí)施例中,計(jì)算設(shè)備100被配置為執(zhí)行根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法200,其中應(yīng)用122包括根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試裝置300。
[0041]圖2示出了根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的接口自動(dòng)化測(cè)試方法200的流程圖。可以理解地,接口自動(dòng)化測(cè)試方法200中的被測(cè)接口可以是互聯(lián)網(wǎng)技術(shù)領(lǐng)域中任一應(yīng)用程序中用于進(jìn)行數(shù)據(jù)交換的接口,例如:用戶(hù)終端上與網(wǎng)絡(luò)側(cè)(例如:服務(wù)器)進(jìn)行數(shù)據(jù)交換的接口,或者服務(wù)器上與用戶(hù)側(cè)(例如:用戶(hù)終端)進(jìn)行數(shù)據(jù)交換的接口。上述應(yīng)用程序包括但不限于瀏覽器應(yīng)用程序、聊天應(yīng)用程序、游戲應(yīng)用程序、音視頻播放應(yīng)用程序等等。
[0042]如圖2所示,方法200始于步驟S210,在步驟S210中,向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求。具體地,可以先生成測(cè)試請(qǐng)求,將生成的測(cè)試請(qǐng)求放入發(fā)送隊(duì)列予以發(fā)送。其中第一接口和第二接口為測(cè)試人員指定需要對(duì)比其返回結(jié)果的兩個(gè)被測(cè)接口,發(fā)送的測(cè)試請(qǐng)求通常為http請(qǐng)求,并包括被測(cè)接口的接口地址和測(cè)試參數(shù)。被測(cè)接口的接口地址可以為URL信息,例如http: //carl.autohome.com/abc。測(cè)試參數(shù)可以是用于測(cè)試該被測(cè)接口的功能而使用的測(cè)試參數(shù)。例如:被測(cè)接口為某一聊天應(yīng)用程序的登錄接口,那么測(cè)試參數(shù)就可以包括登錄賬號(hào)和登錄賬號(hào)的密碼信息,以通過(guò)登錄賬號(hào)和密碼信息測(cè)試該登錄接口是否準(zhǔn)確或者穩(wěn)定。
[0043]第一接口和第二接口接收測(cè)試請(qǐng)求,并響應(yīng)于該測(cè)試請(qǐng)求,根據(jù)測(cè)試參數(shù)進(jìn)行測(cè)試后返回響應(yīng)結(jié)果,響應(yīng)結(jié)果一般為JSON數(shù)據(jù)。因此在步驟S220中,接收第一接口和第二接口響應(yīng)測(cè)試請(qǐng)求返回的第一 JSON數(shù)據(jù)和第二
[0044]JSON數(shù)據(jù)。公知地,JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和書(shū)寫(xiě),易于機(jī)器解析和生成,可以被用來(lái)作為數(shù)據(jù)交換格式。
[0045]應(yīng)當(dāng)注意的是,步驟S210中,由于網(wǎng)絡(luò)抖動(dòng)或者其他原因,可能會(huì)出現(xiàn)請(qǐng)求發(fā)送失敗的情況。因此,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求的步驟之后,方法200還包括步驟:
[0046]接收第一接口和第二接口返回的響應(yīng)狀態(tài)碼,若響應(yīng)狀態(tài)碼(例如200)指示請(qǐng)求發(fā)送成功,則存儲(chǔ)相應(yīng)的接口地址和該接口返回的數(shù)據(jù);若響應(yīng)狀態(tài)碼(例如404)指示請(qǐng)求發(fā)送失敗,則檢測(cè)接口重發(fā)次數(shù)是否達(dá)到閾值。
[0047]若接口重發(fā)次數(shù)沒(méi)有達(dá)到閾值(閾值通常為3),則重發(fā)該測(cè)試請(qǐng)求,同時(shí)將接口重復(fù)次數(shù)加I。若接口重發(fā)次數(shù)已達(dá)到閾值,則不再重發(fā)該測(cè)試請(qǐng)求。
[0048]當(dāng)測(cè)試請(qǐng)求發(fā)送成功,存儲(chǔ)了接口地址和接口返回的JSON數(shù)據(jù)之后,由于測(cè)試中返回的JSON數(shù)據(jù)中一般會(huì)嵌套多層數(shù)據(jù)對(duì)象,使用現(xiàn)有技術(shù)無(wú)法高效的完成數(shù)據(jù)解析操作。為了便于數(shù)據(jù)讀取,在步驟S230中,將第一JSON數(shù)據(jù)和第二JSON數(shù)據(jù)分別轉(zhuǎn)化為第一字典對(duì)象和第二字典對(duì)象。具體地,其中字典對(duì)象為diet類(lèi)型對(duì)象,可以使用simple json庫(kù)中的loads方法將JSON數(shù)據(jù)轉(zhuǎn)化為diet類(lèi)型對(duì)象。
[0049]而后在步驟S240中,比對(duì)上述第一字典對(duì)象和第二字典對(duì)象。具體地,首先遍歷第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),通??梢圆捎蒙疃缺闅v方法。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,通過(guò)深度優(yōu)先方法遍歷第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),可以包括:
[0050]訪(fǎng)問(wèn)字典對(duì)象的出發(fā)節(jié)點(diǎn),并將其標(biāo)記為已訪(fǎng)問(wèn)過(guò);從出發(fā)點(diǎn)出發(fā)依次搜索該出發(fā)節(jié)點(diǎn)的每個(gè)鄰接節(jié)點(diǎn),若該鄰接節(jié)點(diǎn)未曾訪(fǎng)問(wèn)過(guò),則以該鄰接節(jié)點(diǎn)為新的出發(fā)節(jié)點(diǎn)繼續(xù)進(jìn)行深度優(yōu)先方法進(jìn)行遍歷,直至字典對(duì)象中所有和出發(fā)節(jié)點(diǎn)有路徑相通的節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止。
[0051]若字典對(duì)象中仍有未訪(fǎng)問(wèn)的節(jié)點(diǎn),則另選一個(gè)尚未訪(fǎng)問(wèn)的節(jié)點(diǎn)作為新的出發(fā)點(diǎn)重復(fù)上述過(guò)程,直至字典對(duì)象中所有節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止。
[0052]其中,例如訪(fǎng)問(wèn)第一字典對(duì)象中一個(gè)節(jié)點(diǎn)時(shí),獲取該節(jié)點(diǎn)在第一字典對(duì)象的key,而后查找第二字典對(duì)象中同樣的key對(duì)應(yīng)的節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)類(lèi)型選取相應(yīng)的比對(duì)規(guī)則,并根據(jù)該比對(duì)規(guī)則比對(duì)第一字典對(duì)象和第二字典對(duì)象中的對(duì)應(yīng)節(jié)點(diǎn)是否相等,若不相等,則記錄此節(jié)點(diǎn)。
[0053 ]其中,每個(gè)節(jié)點(diǎn)可以對(duì)應(yīng)一條比對(duì)規(guī)則,接口返回的JSON數(shù)據(jù)中各節(jié)點(diǎn)的比對(duì)規(guī)則可以預(yù)先配置并存儲(chǔ)。
[0054]假設(shè)第一接口返回的結(jié)果為:{、’:1,‘13’:2,‘(3’:3},第二接口返回的結(jié)果為{‘b’:2,‘a(chǎn)’:1,‘c’:3},二者實(shí)際上是相等的,而按照傳統(tǒng)的字符串比對(duì)方法,無(wú)法正確識(shí)別順序隨機(jī)的節(jié)點(diǎn),因此會(huì)得出判定為不相等的錯(cuò)誤結(jié)論,影響了測(cè)試結(jié)果。而根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法,則可以避免此種錯(cuò)誤。
[0055]又假設(shè)第一接口返回的結(jié)果為:{‘a(chǎn)’: 1,‘b’:2,‘c’: 3},第二接口返回的結(jié)果為{‘&’:1,‘13’:2,‘(3’:4},其中3、13相等,(3不相等,根據(jù)本發(fā)明的接口自動(dòng)化測(cè)試方法進(jìn)行測(cè)試后可以得到其不相等的節(jié)點(diǎn)為C。
[0056]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,比對(duì)節(jié)點(diǎn)的比對(duì)規(guī)則可以包括:比較節(jié)點(diǎn)的類(lèi)型和值,若類(lèi)型和值均相等,則兩個(gè)節(jié)點(diǎn)相等。
[0057]當(dāng)接口節(jié)點(diǎn)類(lèi)型改變時(shí),例如從列表變?yōu)樽址葘?duì)規(guī)則還可以包括:忽略節(jié)點(diǎn)的類(lèi)型,比較節(jié)點(diǎn)的值,若值相等,則兩個(gè)節(jié)點(diǎn)相等。
[0058]當(dāng)該節(jié)點(diǎn)不為固定值時(shí),例如值為時(shí)間戳,由于時(shí)間戳隨時(shí)間改變需要忽略,比對(duì)規(guī)則可以包括:忽略節(jié)點(diǎn)的值,比較節(jié)點(diǎn)的類(lèi)型,若類(lèi)型相等,則兩個(gè)節(jié)點(diǎn)相等。
[0059]進(jìn)一步地,若節(jié)點(diǎn)為集合節(jié)點(diǎn),當(dāng)集合節(jié)點(diǎn)中元素排列無(wú)序時(shí),例如在搜索的結(jié)果中,結(jié)果的排序是隨時(shí)可能變化的,比對(duì)規(guī)則可以包括:計(jì)算集合節(jié)點(diǎn)的長(zhǎng)度,比較該長(zhǎng)度,若長(zhǎng)度一致,則兩個(gè)節(jié)點(diǎn)相等。
[0060]若節(jié)點(diǎn)為集合節(jié)點(diǎn),當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素個(gè)數(shù)隨機(jī)時(shí),比對(duì)規(guī)則可以包括:計(jì)算集合節(jié)點(diǎn)的元素個(gè)數(shù),比較元素個(gè)數(shù),若元素個(gè)數(shù)相等,則兩個(gè)節(jié)點(diǎn)相等。
[0061]此外,由于集合中元素的增加或減少是軟件版本更新時(shí)的常見(jiàn)情況,因此比對(duì)規(guī)則還可以包括:忽略比較特定名稱(chēng)的節(jié)點(diǎn)。
[0062]圖3示出了根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的接口自動(dòng)化測(cè)試裝置300的結(jié)構(gòu)圖。如圖3所示,裝置300可以包括請(qǐng)求發(fā)送模塊310、響應(yīng)接收模塊320和比較模塊330。
[0063]請(qǐng)求發(fā)送模塊310適于向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求,與請(qǐng)求發(fā)送模塊310相連的響應(yīng)接收模塊320適于接收第一接口和第二接口響應(yīng)測(cè)試請(qǐng)求返回的第一 JSON數(shù)據(jù)和第二 JSON數(shù)據(jù)。
[0064]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,響應(yīng)接收模塊320還適于接收第一接口和第二接口返回的響應(yīng)狀態(tài)碼;若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送成功,則存儲(chǔ)相應(yīng)的接口地址和該接口返回的數(shù)據(jù);若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送失敗,則檢測(cè)接口重發(fā)次數(shù)是否達(dá)到閾值;若否,則請(qǐng)求發(fā)送模塊310重新發(fā)送測(cè)試請(qǐng)求,將該接口重發(fā)次數(shù)加I,若是,則不重發(fā)測(cè)試請(qǐng)求。
[0065]響應(yīng)接收模塊320接收了JSON數(shù)據(jù)后,與響應(yīng)接收模塊320連接的比較模塊330適于將第一 JSON數(shù)據(jù)和第二 JSON數(shù)據(jù)分別轉(zhuǎn)化為第一字典對(duì)象和第二字典對(duì)象,具體地,其中字典對(duì)象為diet類(lèi)型對(duì)象,所述比較模塊還適于使用simple json庫(kù)中的loads方法將JSON數(shù)據(jù)轉(zhuǎn)化為diet類(lèi)型對(duì)象。
[0066]而后,比較模塊330適于比對(duì)上述第一字典對(duì)象和第二字典對(duì)象是否相等,具體地,比較模塊330適于遍歷第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)類(lèi)型選取相應(yīng)的比對(duì)規(guī)則,根據(jù)比對(duì)規(guī)則比對(duì)第一字典對(duì)象和第二字典對(duì)象中的對(duì)應(yīng)節(jié)點(diǎn)是否相等,若不相等,則記錄此節(jié)點(diǎn)。
[0067]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,比較模塊330可以通過(guò)深度優(yōu)先方法遍歷第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),具體地,先訪(fǎng)問(wèn)字典對(duì)象的出發(fā)節(jié)點(diǎn),并將其標(biāo)記為已訪(fǎng)問(wèn)過(guò),從出發(fā)點(diǎn)出發(fā)依次搜索所述出發(fā)節(jié)點(diǎn)的每個(gè)鄰接節(jié)點(diǎn),若該鄰接節(jié)點(diǎn)未曾訪(fǎng)問(wèn)過(guò),則以該鄰接節(jié)點(diǎn)為新的出發(fā)節(jié)點(diǎn)繼續(xù)進(jìn)行深度優(yōu)先方法進(jìn)行遍歷,直至字典對(duì)象中所有和出發(fā)節(jié)點(diǎn)有路徑相通的節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止。若字典對(duì)象中仍有未訪(fǎng)問(wèn)的節(jié)點(diǎn),則另選一個(gè)尚未訪(fǎng)問(wèn)的節(jié)點(diǎn)作為新的出發(fā)點(diǎn)重復(fù)上述過(guò)程,直至字典對(duì)象中所有節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止。
[0068]其中,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,在訪(fǎng)問(wèn)一個(gè)節(jié)點(diǎn)時(shí),可以選取的比對(duì)規(guī)則包括:比較節(jié)點(diǎn)的類(lèi)型和值,若類(lèi)型和值均相等,則兩個(gè)節(jié)點(diǎn)相等。
[0069]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,比對(duì)規(guī)則還可以包括:忽略節(jié)點(diǎn)的類(lèi)型,比較節(jié)點(diǎn)的值,若值相等,則兩個(gè)節(jié)點(diǎn)相等。
[0070]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,比對(duì)規(guī)則還可以包括:忽略節(jié)點(diǎn)的值,比較節(jié)點(diǎn)的類(lèi)型,若類(lèi)型相等,則兩個(gè)節(jié)點(diǎn)相等。
[0071]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素排列無(wú)序時(shí),比對(duì)規(guī)則還可以包括:計(jì)算集合節(jié)點(diǎn)的長(zhǎng)度,比較長(zhǎng)度,若長(zhǎng)度一致,則兩個(gè)節(jié)點(diǎn)相等。
[0072]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素個(gè)數(shù)隨機(jī)時(shí),比對(duì)規(guī)則還可以包括:計(jì)算集合節(jié)點(diǎn)的元素個(gè)數(shù),比較元素個(gè)數(shù),若元素個(gè)數(shù)相等,則兩個(gè)節(jié)點(diǎn)相等。
[0073]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,比對(duì)規(guī)則還可以包括:忽略比較特定名稱(chēng)的節(jié)點(diǎn)。
[0074]以上在結(jié)合圖1、圖2說(shuō)明接口自動(dòng)化測(cè)試方法200的具體描述中已經(jīng)對(duì)各步驟中的相應(yīng)處理進(jìn)行了詳細(xì)解釋?zhuān)@里不再對(duì)重復(fù)內(nèi)容進(jìn)行贅述。
[0075]在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下被實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
[0076]類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書(shū)由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0077]本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開(kāi)的示例中的設(shè)備的模塊或單元或組件可以布置在如該實(shí)施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個(gè)或多個(gè)設(shè)備中。前述示例中的模塊可以組合為一個(gè)模塊或者此外可以分成多個(gè)子模塊。
[0078]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
[0079]本發(fā)明還包括:A6、如A4所述的方法,所述比對(duì)規(guī)則包括:忽略節(jié)點(diǎn)的類(lèi)型;比較節(jié)點(diǎn)的值;若所述值相等,則兩個(gè)節(jié)點(diǎn)相等。A7、如A4所述的方法,所述比對(duì)規(guī)則包括:忽略節(jié)點(diǎn)的值;比較節(jié)點(diǎn)的類(lèi)型;若所述類(lèi)型相等,則兩個(gè)節(jié)點(diǎn)相等。AS、如A4所述的方法,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素排列無(wú)序時(shí),所述比對(duì)規(guī)則包括:計(jì)算所述集合節(jié)點(diǎn)的長(zhǎng)度;比較所述長(zhǎng)度,若長(zhǎng)度一致,則兩個(gè)節(jié)點(diǎn)相等。A9、如A4所述的方法,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素個(gè)數(shù)隨機(jī)時(shí),所述比對(duì)規(guī)則包括:計(jì)算所述集合節(jié)點(diǎn)的元素個(gè)數(shù);比較所述元素個(gè)數(shù),若所述元素個(gè)數(shù)相等,則兩個(gè)節(jié)點(diǎn)相等。A10、如A4所述的方法,所述比對(duì)規(guī)則包括:忽略比較特定名稱(chēng)的節(jié)點(diǎn)。
[0080]還包括:B15、如B14所述的裝置,所述比對(duì)規(guī)則包括:比較節(jié)點(diǎn)的類(lèi)型和值;若所述類(lèi)型和值均相等,則兩個(gè)節(jié)點(diǎn)相等。B16、如B14所述的裝置,所述比對(duì)規(guī)則包括:忽略節(jié)點(diǎn)的類(lèi)型;比較節(jié)點(diǎn)的值;若所述值相等,則兩個(gè)節(jié)點(diǎn)相等。B17、如B14所述的裝置,所述比對(duì)規(guī)則包括:忽略節(jié)點(diǎn)的值;比較節(jié)點(diǎn)的類(lèi)型;若所述類(lèi)型相等,則兩個(gè)節(jié)點(diǎn)相等。B18、如B14所述的裝置,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素排列無(wú)序時(shí),所述比對(duì)規(guī)則包括:計(jì)算所述集合節(jié)點(diǎn)的長(zhǎng)度;比較所述長(zhǎng)度,若長(zhǎng)度一致,則兩個(gè)節(jié)點(diǎn)相等。B19、如權(quán)利要求14所述的裝置,當(dāng)節(jié)點(diǎn)為集合節(jié)點(diǎn)且集合節(jié)點(diǎn)中元素個(gè)數(shù)隨機(jī)時(shí),所述比對(duì)規(guī)則包括:計(jì)算所述集合節(jié)點(diǎn)的元素個(gè)數(shù);比較所述元素個(gè)數(shù),若所述元素個(gè)數(shù)相等,則兩個(gè)節(jié)點(diǎn)相等。B20、如權(quán)利要求14所述的裝置,所述比對(duì)規(guī)則包括:忽略比較特定名稱(chēng)的節(jié)點(diǎn)。
[0081]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
[0082]此外,所述實(shí)施例中的一些在此被描述成可以由計(jì)算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實(shí)施的方法或方法元素的組合。因此,具有用于實(shí)施所述方法或方法元素的必要指令的處理器形成用于實(shí)施該方法或方法元素的裝置。此外,裝置實(shí)施例的在此所述的元素是如下裝置的例子:該裝置用于實(shí)施由為了實(shí)施該發(fā)明的目的的元素所執(zhí)行的功能。
[0083]如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來(lái)描述普通對(duì)象僅僅表示涉及類(lèi)似對(duì)象的不同實(shí)例,并且并不意圖暗示這樣被描述的對(duì)象必須具有時(shí)間上、空間上、排序方面或者以任意其它方式的給定順序。
[0084]盡管根據(jù)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實(shí)施例。此外,應(yīng)當(dāng)注意,本說(shuō)明書(shū)中使用的語(yǔ)言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書(shū)的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見(jiàn)的。對(duì)于本發(fā)明的范圍,對(duì)本發(fā)明所做的公開(kāi)是說(shuō)明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書(shū)限定。
【主權(quán)項(xiàng)】
1.一種接口自動(dòng)化測(cè)試方法,該方法包括: 向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求; 接收第一接口和第二接口響應(yīng)測(cè)試請(qǐng)求返回的第一JSON數(shù)據(jù)和第二JSON數(shù)據(jù); 將第一 JSON數(shù)據(jù)和第二 JSON數(shù)據(jù)分別轉(zhuǎn)化為第一字典對(duì)象和第二字典對(duì)象; 比對(duì)所述第一字典對(duì)象和第二字典對(duì)象,包括: 遍歷所述第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn); 根據(jù)節(jié)點(diǎn)類(lèi)型選取相應(yīng)的比對(duì)規(guī)則; 根據(jù)所述比對(duì)規(guī)則比對(duì)所述第一字典對(duì)象和第二字典對(duì)象中的對(duì)應(yīng)節(jié)點(diǎn)是否相等,若不相等,則記錄此節(jié)點(diǎn)。2.如權(quán)利要求1所述的方法,所述向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求的步驟之后,還包括: 接收第一接口和第二接口返回的響應(yīng)狀態(tài)碼; 若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送成功,則存儲(chǔ)相應(yīng)的接口地址和該接口返回的數(shù)據(jù); 若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送失敗,則檢測(cè)接口重發(fā)次數(shù)是否達(dá)到閾值; 若否,則重新發(fā)送測(cè)試請(qǐng)求,將該接口重發(fā)次數(shù)加I。3.如權(quán)利要求2所述的方法,其中字典對(duì)象為diet類(lèi)型對(duì)象,將第一JSON數(shù)據(jù)和第二JSON數(shù)據(jù)分別轉(zhuǎn)化為第一字典對(duì)象和第二字典對(duì)象的步驟包括: 使用simple json庫(kù)中的loads方法將JSON數(shù)據(jù)轉(zhuǎn)化為diet類(lèi)型對(duì)象。4.如權(quán)利要求3所述的方法,通過(guò)深度優(yōu)先方法遍歷所述第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),包括: 訪(fǎng)問(wèn)字典對(duì)象的出發(fā)節(jié)點(diǎn),并將其標(biāo)記為已訪(fǎng)問(wèn)過(guò); 從出發(fā)點(diǎn)出發(fā)依次搜索所述出發(fā)節(jié)點(diǎn)的每個(gè)鄰接節(jié)點(diǎn); 若所述鄰接節(jié)點(diǎn)未曾訪(fǎng)問(wèn)過(guò),則以該鄰接節(jié)點(diǎn)為新的出發(fā)節(jié)點(diǎn)繼續(xù)進(jìn)行深度優(yōu)先方法進(jìn)行遍歷,直至所述字典對(duì)象中所有和出發(fā)節(jié)點(diǎn)有路徑相通的節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止; 若所述字典對(duì)象中仍有未訪(fǎng)問(wèn)的節(jié)點(diǎn),則另選一個(gè)尚未訪(fǎng)問(wèn)的節(jié)點(diǎn)作為新的出發(fā)點(diǎn)重復(fù)上述過(guò)程,直至所述字典對(duì)象中所有節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止。5.如權(quán)利要求4所述的方法,所述比對(duì)規(guī)則包括: 比較節(jié)點(diǎn)的類(lèi)型和值; 若所述類(lèi)型和值均相等,則兩個(gè)節(jié)點(diǎn)相等。6.一種接口自動(dòng)化測(cè)試裝置,該裝置包括: 請(qǐng)求發(fā)送模塊,適于向第一接口和第二接口發(fā)送測(cè)試請(qǐng)求; 響應(yīng)接收模塊,適于接收第一接口和第二接口響應(yīng)測(cè)試請(qǐng)求返回的第一 JSON數(shù)據(jù)和第二 JSON數(shù)據(jù); 比較模塊,適于將第一 JSON數(shù)據(jù)和第二 JSON數(shù)據(jù)分別轉(zhuǎn)化為第一字典對(duì)象和第二字典對(duì)象; 所述比較模塊還適于比對(duì)所述第一字典對(duì)象和第二字典對(duì)象,包括:適于遍歷所述第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)類(lèi)型選取相應(yīng)的比對(duì)規(guī)則,根據(jù)所述比對(duì)規(guī)則比對(duì)所述第一字典對(duì)象和第二字典對(duì)象中的對(duì)應(yīng)節(jié)點(diǎn)是否相等,若不相等,則記錄此節(jié)點(diǎn)。7.如權(quán)利要求6所述的裝置,所述響應(yīng)接收模塊還適于接收第一接口和第二接口返回的響應(yīng)狀態(tài)碼;若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送成功,則存儲(chǔ)相應(yīng)的接口地址和該接口返回的數(shù)據(jù);若響應(yīng)狀態(tài)碼指示請(qǐng)求發(fā)送失敗,則檢測(cè)接口重發(fā)次數(shù)是否達(dá)到閾值;若否,則請(qǐng)求發(fā)送模塊重新發(fā)送測(cè)試請(qǐng)求,將該接口重發(fā)次數(shù)加I。8.如權(quán)利要求7所述的裝置,其中字典對(duì)象為diet類(lèi)型對(duì)象,所述比較模塊還適于使用simple json庫(kù)中的loads方法將JSON數(shù)據(jù)轉(zhuǎn)化為diet類(lèi)型對(duì)象。9.如權(quán)利要求8所述的裝置,所述比較模塊還適于通過(guò)深度優(yōu)先方法遍歷所述第一字典對(duì)象和第二字典對(duì)象中各個(gè)節(jié)點(diǎn),包括:適于訪(fǎng)問(wèn)字典對(duì)象的出發(fā)節(jié)點(diǎn),并將其標(biāo)記為已訪(fǎng)問(wèn)過(guò),從出發(fā)點(diǎn)出發(fā)依次搜索所述出發(fā)節(jié)點(diǎn)的每個(gè)鄰接節(jié)點(diǎn),若所述鄰接節(jié)點(diǎn)未曾訪(fǎng)問(wèn)過(guò),則以該鄰接節(jié)點(diǎn)為新的出發(fā)節(jié)點(diǎn)繼續(xù)進(jìn)行深度優(yōu)先方法進(jìn)行遍歷,直至所述字典對(duì)象中所有和出發(fā)節(jié)點(diǎn)有路徑相通的節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止,若所述字典對(duì)象中仍有未訪(fǎng)問(wèn)的節(jié)點(diǎn),則另選一個(gè)尚未訪(fǎng)問(wèn)的節(jié)點(diǎn)作為新的出發(fā)點(diǎn)重復(fù)上述過(guò)程,直至所述字典對(duì)象中所有節(jié)點(diǎn)均已被訪(fǎng)問(wèn)為止。10.—種計(jì)算設(shè)備,包括如權(quán)利要求6-9中任一項(xiàng)所述的接口自動(dòng)化測(cè)試裝置。
【文檔編號(hào)】G06F11/36GK105824752SQ201610151154
【公開(kāi)日】2016年8月3日
【申請(qǐng)日】2016年3月16日
【發(fā)明人】宋昊
【申請(qǐng)人】北京齊爾布萊特科技有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1