
本申請涉及計算機
技術領域:
,尤其涉及一種接口的測試方法及裝置。
背景技術:
:傳統技術中,在對被調模塊的接口進行測試時,直接在測試驅動的測試腳本中人工構造接口的測試數據,或者,通過定制工具構造測試數據,然后根據構造的測試數據,對上述接口進行測試;然而上述第一種方法中通過手工構造測試數據的效率比較低,這影響了接口的測試速度;而第二種方法中通常先需要開發人員開發出定制工具,而定制工具的開發要求開發人員對被調模塊的內部結構非常了解,此外,當測試的接口發生變化時,則可能需要對定制工具進行適應性的修改,并且重新構造測試數據,這增加了接口的測試復雜度。技術實現要素:本申請實施例提供了一種接口的測試方法及裝置,可以加快接口的測試速度,且可以減小接口的測試復雜度。第一方面,提供了一種接口的測試方法,該方法包括:根據被調模塊的接口的接口信息,從預設的存儲單元中讀取所述接口的測試數據;向所述被調模塊發送第一調用請求,所述第一調用請求中攜帶所述接口信息以及所述測試數據,所述第一調用請求用于指示所述被調模塊根據所述測試數據,對所述接口信息對應的所述接口進行測試;接收所述被調模塊在對所述接口測試后返回的測試結果。第二方面,提供了一種接口的測試裝置,該裝置包括:讀取單元、發送單元和接收單元;所述讀取單元,用于根據被調模塊的接口的接口信息,從預設的存儲單元中讀取所述接口的測試數據;所述發送單元,用于向所述被調模塊發送第一調用請求,所述第一調用請求中攜帶所述接口信息以及所述測試數據,所述第一調用請求用于指示所述被調模塊根據所述測試數據,對所述接口信息對應的所述接口進行測試;所述接收單元,用于接收所述被調模塊在對所述接口測試后返回的測試結果。本申請提供的接口的測試方法及裝置,根據被調模塊的接口的接口信息,從預設的存儲單元中讀取所述接口的測試數據;向所述被調模塊發送第一調用請求,所述第一調用請求中攜帶所述接口信息以及所述測試數據,所述第一調用請求用于指示所述被調模塊根據所述測試數據,對所述接口信息對應的所述接口進行測試;接收所述被調模塊在對所述接口測試后返回的測試結果。也即本申請中,在對接口進行測試時,直接從預設的存儲單元中讀取接口的測試數據,從而可以加快接口的測試速度,且可以減小接口的測試復雜度。附圖說明圖1為本申請一種實施例提供的接口的測試方法流程圖;圖2為本申請提供的測試數據的記錄示意圖;圖3為本申請另一種實施例提供的接口的測試裝置示意圖。具體實施方式為使本申請實施例的目的、技術方案和優點更加清楚,下面將結合本申 請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。為便于對本申請實施例的理解,下面將結合附圖以具體實施例做進一步的解釋說明,實施例并不構成對本申請實施例的限定。本申請實施例提供的接口的測試方法及裝置,適用于對接口進行測試的場景,如,可以對被調模塊的接口進行測試,此處,被調模塊可以包括多個接口,其中,接口是指被調模塊提供給主調模塊使用其功能的入口,即每個接口可以對應一個功能,也即主調模塊通過對被調模塊的接口的調用,可以執行一次業務操作。舉例來說,假設被調模塊為用戶信息模塊,其包括的第一接口對應的功能是根據用戶ID獲取用戶信息,則主調模塊可以為登錄模塊,即登錄模塊向用戶信息模塊發送調用請求,該調用請求中攜帶第一接口的名稱以及用戶ID,用戶信息模塊執行第一接口對應的功能,即根據用戶ID獲取用戶信息,并向主調模塊返回用戶信息,由此,一次業務操作被執行完成。在對上述被調模塊的接口進行測試時,通過測試驅動(如,testNG)來驅動整個測試過程,其中,測試驅動是指用于驅動對被調模塊的接口進行測試的軟件模塊,也即由測試驅動來模擬主調模塊來對被調模塊的接口進行調用,而對接口的調用通常需要使用接口的測試數據(如,上述用戶ID),因此,如何快速而有效的構造測試數據,以及根據構造的測試數據,來對被調模塊的接口進行測試就成為本申請所要解決的技術問題。圖1為本申請一種實施例提供的接口的測試方法流程圖。所述方法的執行主體可以為具有處理能力的設備:服務器或者系統或者裝置,如圖1所示,所述方法具體可以包括:步驟110,根據被調模塊的接口的接口信息,從預設的存儲單元中讀取所 述接口的測試數據。即測試驅動根據被調模塊的接口的接口信息,從預設的存儲單元中讀取所述接口的測試數據。在一個例子中,接口的接口信息可以為接口的名稱;預設的存儲單元可以為關系數據庫。在另一個例子中,測試數據可以通過可擴展標記語言(ExtensibleMarkupLanguage,XML)文件的形式存儲在所述預設的存儲單元中,由此,可以很好的保存測試數據原有的結構。舉例來說,當主調模塊發送的調用請求中攜帶的測試數據為“個人簡歷”時,則該測試數據一般是樹形結構的,即可以如下所示:用戶信息名字電話地址工作經歷A公司2001年-2010年B公司2010年-2014年……而由于XML文件也是樹形結構的,從而可以很好的記錄上述測試數據原有的結構。可選地,在執行步驟110之前,所述方法還可以包括在所述預設的存儲單元中記錄所述測試數據的步驟,具體為:步驟A:攔截主調模塊向所述被調模塊發送的第二調用請求,所述第二調用請求中攜帶所述接口信息以及所述測試數據。步驟B:在所述預設的存儲單元中記錄所述接口信息以及所述測試數據,并記錄所述接口信息與所述測試數據的對應關系。本申請中,可以預先配置攔截器(interceptor),該攔截器用于對從主調模塊發送至被調模塊的調用請求進行攔截,并轉發至錄制服務端,其中,錄制服務端用于記錄接收到的調用請求中攜帶的接口信息、測試數據及接口 信息與測試數據的對應關系;此外,錄制服務端還用于預先配置被調模塊的地址,并根據被調模塊的地址將調用請求轉發給被調模塊。參見圖2所示的測試數據的記錄示意圖,圖2中,主調模塊向被調模塊發送第二調用請求,攔截器在檢測到該第二調用請求之后,攔截該第二調用請求,并轉發至錄制服務端,錄制服務端在數據庫中記錄接口信息、測試數據及其對應關系,并根據預先配置的被調模塊的地址,將第二調用請求轉發至被調模塊,被調模塊根據測試數據,執行接口信息對應的接口的功能。舉例來說,主調模塊為登錄模塊,被調模塊為用戶信息模塊,且調用請求中攜帶的接口信息為接口1,且該接口1對應的接口的功能是根據用戶ID獲取用戶信息,測試數據為用戶ID,則錄制服務端在數據庫中記錄的接口信息、測試數據及其對應關系可以如表1所示。表1接口名稱測試數據接口1用戶ID在記錄上述接口名稱、測試數據及其對應關系之后,測試驅動在模擬登錄模塊對用戶信息模塊的接口1進行調用時,也即在對接口1進行測試時,可以直接從表1中讀取與接口1對應的測試數據,從而可以避免由開發人員手工構造測試數據,造成的測試速度慢的問題,此外,也可以避免通過預先開發的定制工具構造測試數據而增加測試復雜度的問題。可以理解的是,圖2中,被調模塊的個數可以有多個,如,當主調模塊為支付系統時,則被調模塊可以包括銀行系統以及安全系統等,在被調模塊有多個的情況下,錄制服務端可以預先配置多個被調模塊的地址,在接收到主調模塊的調用請求之后,錄制服務端可以根據接口信息,確定該接口信息對應的接口所歸屬的被調模塊,然后讀取預先配置的被調模塊的地址,將上述調用請求分發至被調模塊。可選地,在執行步驟B之后,本申請實施例還可以包括如下步驟:步驟C,向所述被調模塊轉發所述第二調用請求,所述第二調用請求用于指示所述被調模塊根據所述測試數據,執行與所述接口信息對應的所述接口的功能。圖2中,錄制服務端可以根據被調模塊的地址,向被調模塊轉發第二調用請求。可以理解的是,當主調模塊調用的被調模塊發生變化時,只需要在錄制服務端修改被調模塊的地址即可,也即本申請的測試方法的通用性比較好。如前述例子中,用戶信息模塊在接收到第二調用請求之后,根據第二調用請求中攜帶的用戶ID,執行接口1對應的接口的功能,也即根據用戶ID獲取用戶信息。步驟D,接收并向所述主調模塊轉發所述被調模塊在執行所述接口的功能后返回的執行結果。如前述例子中,若用戶信息模塊成功獲取到用戶信息,則向錄制服務端返回的執行結果可以為獲取的用戶信息以及用于表示獲取用戶信息成功的信息;若用戶信息模塊獲取用戶信息失敗,則向錄制服務端返回的執行結果可以為用于表示獲取用戶信息失敗的信息;最后再由錄制服務端將上述執行結果轉發至主調模塊,從而主調模塊根據接收的執行結果進行相應的操作,由此,一次業務操作執行完成。也即本申請是在執行業務操作的過程中,在預設的存儲單元中記錄主調模塊調用被調模塊的接口的測試數據的,在執行該一次業務操作之后,當對被調模塊的接口進行測試時,也即由測試驅動模擬主調模塊調用被調模塊的接口時,直接根據接口信息從預設的存儲單元中讀取接口的測試數據,而無需人工構造或者通過定制工具構造,節省了人力資源且提高了測試速度。回到步驟110中,測試驅動可以預先記錄至少一個被調模塊包含的至少一個接口的接口信息,當確定執行接口1對應的接口的功能時,首先根據接口1從預設的存儲單元中讀取接口1對應的測試數據,即用戶ID。步驟120,向所述被調模塊發送第一調用請求,所述第一調用請求中攜帶所述接口信息以及所述測試數據,所述第一調用請求用于指示所述被調模塊根據所述測試數據,對所述接口信息對應的所述接口進行測試。此處,對所述接口信息對應的所述接口進行測試即為執行接口信息對應的接口的功能。同樣的,測試驅動也可以預先配置被調模塊的地址。具體地,在從預設的存儲單元中讀取到用戶ID后,可以確定接口1所屬的第一被調模塊,并根據第一被調模塊的地址,向第一被調模塊發送第一調用請求。舉例來說,第一調用請求中攜帶接口1和用戶ID,第一被調模塊在接收到第一調用請求后,對接口1對應的接口進行測試,以確定該接口是否正常,即根據用戶ID獲取用戶信息,若能成功獲取到用戶信息,則對該接口的測試結果為正常;否則為不正常。步驟130,接收所述被調模塊在對所述接口測試后返回的測試結果。測試驅動接收測試正常或者不正常的測試結果。即若測試結果為不正常,則開發人員可以對該接口對應的功能進行修改等操作。需要說明是,根據本申請的上述步驟110-步驟130,可以完成對被調模塊的一個接口的測試,當需要對被調模塊的其它接口都進行測試時,可以先對主調模塊調用被調模塊的其它接口的接口信息以及對應的其它測試數據進行記錄,然后根據其它接口的接口信息從預設的存儲單元中讀取對應的其它測試數據,并向被調模塊發送攜帶其它接口的接口信息以及其它測試數據的第一調用請求,最后由被調模塊根據其它測試數據,對其它接口進行測試。本申請提供的接口的測試方法,根據被調模塊的接口的接口信息,從預設的存儲單元中讀取所述接口的測試數據;向所述被調模塊發送第一調用請求,所述第一調用請求中攜帶所述接口信息以及所述測試數據,所述第一調用請求用于指示所述被調模塊根據所述測試數據,對所述接口信息對應的所述接口進行測試;接收所述被調模塊在對所述接口測試后返回的測試結果。 由此,可以加快接口的測試速度,且可以減小接口的測試復雜度。與上述接口的測試方法對應地,本申請實施例還提供的一種接口的測試裝置,如圖3所示,該裝置包括:讀取單元301、發送單元302和接收單元303。讀取單元301,用于根據被調模塊的接口的接口信息,從預設的存儲單元中讀取所述接口的測試數據。其中,所述測試數據是通過可擴展標記語言XML文件的形式存儲在所述預設的存儲單元中的。發送單元302,用于向所述被調模塊發送第一調用請求,所述第一調用請求中攜帶所述接口信息以及所述測試數據,所述第一調用請求用于指示所述被調模塊根據所述測試數據,對所述接口信息對應的所述接口進行測試。接收單元303,用于接收所述被調模塊在對所述接口測試后返回的測試結果。可選地,所述裝置還包括:攔截單元304和記錄單元305。攔截單元304,用于攔截主調模塊向所述被調模塊發送的第二調用請求,所述第二調用請求中攜帶所述接口信息以及所述測試數據。記錄單元305,用于在所述預設的存儲單元中記錄所述接口信息以及所述測試數據,并記錄所述接口信息與所述測試數據的對應關系。可選地,發送單元302,還用于向所述被調模塊轉發所述第二調用請求,所述第二調用請求用于指示所述被調模塊根據所述測試數據,執行與所述接口信息對應的所述接口的功能。接收單元303,還用于接收所述被調模塊在執行所述接口的功能后返回的執行結果。發送單元302,還用于向所述主調模塊轉發所述執行結果。可選地,所述裝置還包括:配置單元306;配置單元306,用于預先配置所述被調模塊的地址。發送單元302具體用于:根據所述被調模塊的地址,向所述被調模塊發送所述第一調用請求。本申請實施例裝置的各功能模塊的功能,可以通過上述方法實施例的各步驟來實現,因此,本申請提供的裝置的具體工作過程,在此不復贅述。本申請提供的接口的測試裝置,讀取單元301根據被調模塊的接口的接口信息,從預設的存儲單元中讀取所述接口的測試數據;發送單元302向所述被調模塊發送第一調用請求,所述第一調用請求中攜帶所述接口信息以及所述測試數據,所述第一調用請求用于指示所述被調模塊根據所述測試數據,對所述接口信息對應的所述接口進行測試;接收單元303接收所述被調模塊在對所述接口測試后返回的測試結果。由此,可以加快接口的測試速度,且可以減小接口的測試復雜度。專業人員應該還可以進一步意識到,結合本文中所公開的實施例描述的各示例的對象及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本申請的范圍。結合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或
技術領域:
內所公知的任意其它形式的存儲介質中。以上所述的具體實施方式,對本申請的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本申請的具體實施方式而已,并不用于限定本申請的保護范圍,凡在本申請的精神和原則之內,所做 的任何修改、等同替換、改進等,均應包含在本申請的保護范圍之內。當前第1頁1 2 3