本發明涉及計算機
技術領域:
,特別涉及一種接口測試方法及裝置。
背景技術:
:隨著計算機技術的發展,形形色色的應用層出不窮,而每個應用中又包括多個接口,通過不同的接口可以實現不同的功能。開發人員在開發每個接口時,會為每個接口編寫定義信息,對接口的功能、輸入參數等進行描述,測試人員根據定義信息可以對接口進行測試。為了測試目標接口能否正常運行,測試人員獲取該目標接口的定義信息之后,需要人工地分析該定義信息,從而確定測試輸入參數以及若向目標接口傳入該測試輸入參數后應得的理論響應結果。之后,向該目標接口傳入該測試輸入參數,以使該目標接口基于該測試輸入參數運行,以便對該目標接口進行測試。在實現本發明的過程中,發明人發現相關技術至少存在以下問題:人工確定測試輸入參數的過程較為繁瑣,耗費的時間過長,導致測試效率低下。技術實現要素:為了解決相關技術的問題,本發明實施例提供了一種接口測試方法及裝置。所述技術方案如下:一方面,提供了一種接口測試方法,所述方法包括:獲取目標接口的定義信息,所述定義信息包括所述目標接口的指定參數類型以及對應的指定參數范圍,所述指定參數類型是指所述目標接口正常運行時輸入參數的類型,所述指定參數范圍是指所述目標接口正常運行時輸入參數所屬的范圍;根據所述目標接口的指定參數類型和指定參數范圍,確定所述目標接口的測試輸入參數;向所述目標接口傳入所述測試輸入參數,使得所述目標接口基于所述測試輸入參數運行,并生成測試報表,所述測試報表用于確定所述目標接口是否運行正常。在一種可能的實現方式中,所述測試輸入參數包括第一測試輸入參數,所述第一測試輸入參數為屬于所述指定參數類型且屬于所述指定參數范圍的參數,所述方法還包括:根據所述定義信息中所述目標接口的功能描述信息,確定若向所述目標接口傳入所述第一測試輸入參數時應得的理論響應結果;當所述測試報表中所述第一測試輸入參數對應的實際響應結果與所述理論響應結果匹配時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述根據所述目標接口的指定參數類型和指定參數范圍,確定所述目標接口的測試輸入參數,包括:獲取所述指定參數范圍中屬于所述指定參數類型的中值,將所述中值確定為測試輸入參數。在另一種可能的實現方式中,所述測試輸入參數包括第二測試輸入參數,所述第二測試輸入參數為不屬于所述指定參數類型的參數,所述方法還包括:當所述測試報表中所述第二測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述根據所述目標接口的指定參數類型和指定參數范圍,確定所述目標接口的測試輸入參數,包括:獲取屬于所述指定參數類型的第一參數;對所述第一參數的類型進行轉換,得到第二參數,所述第二參數不屬于所述指定參數類型;將所述第二參數確定為測試輸入參數。在另一種可能的實現方式中,所述測試輸入參數包括第三測試輸入參數,所述第三測試輸入參數為不屬于所述指定參數范圍的參數,所述方法還包括:當所述測試報表中所述第三測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述指定參數類型包括必選參數類型,所述測試輸入參數包括第四測試輸入參數,所述第四測試輸入參數為空參數,所述方法還包括:當所述測試報表中所述第四測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述定義信息包括所述目標接口的多個指定參數類型以及對應的多個指定參數范圍,所述根據所述目標接口的指定參數類型和指定參數范圍,確定所述目標接口的測試輸入參數,包括:將相互對應的指定參數類型和指定參數范圍作為一組,得到多個分組;根據每個分組內的指定參數類型和指定參數范圍,確定每個分組的備選輸入參數;將屬于不同分組的備選輸入參數進行組合,得到多種備選參數組合;從所述多種備選參數組合中選取測試輸入參數組合,將所述測試輸入參數組合中的每個參數確定為測試輸入參數。在另一種可能的實現方式中,所述獲取目標接口的定義信息,包括:獲取js格式的第一接口文件,所述第一接口文件包括所述定義信息;將所述第一接口文件轉化為JavaScript對象表示法json格式,得到第二接口文件;將所述第二接口文件轉化為可擴展標記語言xml格式,得到第三接口文件;對所述第三接口文件進行解析,得到所述定義信息。另一方面,提供了一種接口測試裝置,所述裝置包括:獲取模塊,用于獲取目標接口的定義信息,所述定義信息包括所述目標接口的指定參數類型以及對應的指定參數范圍,所述指定參數類型是指所述目標接口正常運行時輸入參數的類型,所述指定參數范圍是指所述目標接口正常運行時輸入參數所屬的范圍;確定模塊,用于根據所述目標接口的指定參數類型和指定參數范圍,確定所述目標接口的測試輸入參數;參數傳入模塊,用于向所述目標接口傳入所述測試輸入參數,使得所述目標接口基于所述測試輸入參數運行,并生成測試報表,所述測試報表用于確定所述目標接口是否運行正常。在一種可能的實現方式中,所述測試輸入參數包括第一測試輸入參數,所述第一測試輸入參數為屬于所述指定參數類型且屬于所述指定參數范圍的參數,所述確定模塊,還用于根據所述定義信息中所述目標接口的功能描述信息,確定若向所述目標接口傳入所述第一測試輸入參數時應得的理論響應結果;所述確定模塊,還用于當所述測試報表中所述第一測試輸入參數對應的實際響應結果與所述理論響應結果匹配時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述確定模塊,還用于獲取所述指定參數范圍中屬于所述指定參數類型的中值,將所述中值確定為測試輸入參數。在另一種可能的實現方式中,所述測試輸入參數包括第二測試輸入參數,所述第二測試輸入參數為不屬于所述指定參數類型的參數,所述確定模塊,還用于當所述測試報表中所述第二測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述根據所述目標接口的指定參數類型和指定參數范圍,所述確定模塊,包括:獲取單元,用于獲取屬于所述指定參數類型的第一參數;類型轉換單元,用于對所述第一參數的類型進行轉換,得到第二參數,所述第二參數不屬于所述指定參數類型;確定單元,用于將所述第二參數確定為測試輸入參數。在另一種可能的實現方式中,所述測試輸入參數包括第三測試輸入參數,所述第三測試輸入參數為不屬于所述指定參數范圍的參數,所述確定模塊,還用于當所述測試報表中所述第三測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述指定參數類型包括必選參數類型,所述測試輸入參數包括第四測試輸入參數,所述第四測試輸入參數為空參數,所述確定模塊,還用于當所述測試報表中所述第四測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述定義信息包括所述目標接口的多個指定參數類型以及對應的多個指定參數范圍,所述根據所述目標接口的指定參數類型和指定參數范圍,所述確定模塊,包括:分組單元,用于將相互對應的指定參數類型和指定參數范圍作為一組,得到多個分組;確定單元,用于根據每個分組內的指定參數類型和指定參數范圍,確定每個分組的備選輸入參數;組合單元,用于將屬于不同分組的備選輸入參數進行組合,得到多種備選參數組合;選取單元,用于從所述多種備選參數組合中選取測試輸入參數組合,將所述測試輸入參數組合中的每個參數確定為測試輸入參數。在另一種可能的實現方式中,所述獲取模塊,包括:獲取單元,用于獲取js格式的第一接口文件,所述第一接口文件包括所述定義信息;格式轉化單元,用于將所述第一接口文件轉化為JavaScript對象表示法json格式,得到第二接口文件;所述格式轉化單元,還用于將所述第二接口文件轉化為可擴展標記語言xml格式,得到第三接口文件;解析單元,用于對所述第三接口文件進行解析,得到所述定義信息。本發明實施例提供的技術方案帶來的有益效果是:通過獲取目標接口的定義信息,根據該目標接口的指定參數類型和指定參數范圍,確定該目標接口的測試輸入參數,并自動向該目標接口傳入該測試輸入參數,使得該目標接口基于該測試輸入參數運行,并生成測試報表,無需測試人員人工地分析定義信息即可對目標接口進行測試,節約了測試時間,提高了測試效率。附圖說明為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本發明實施例提供的接口測試方法流程圖;圖2是本發明實施例提供的接口測試方法流程圖;圖3是本發明實施例提供的接口測試裝置結構示意圖;圖4是本發明實施例提供的接口測試裝置結構示意圖。具體實施方式為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。圖1是本發明實施例提供的一種接口測試方法的流程圖,本發明實施例應用于測試終端中,如圖1所示,該接口測試方法包括以下步驟:101、獲取目標接口的定義信息,該定義信息包括該目標接口的指定參數類型以及對應的指定參數范圍,該指定參數類型是指該目標接口正常運行時輸入參數的類型,該指定參數范圍是指該目標接口正常運行時輸入參數所屬的范圍。102、根據該目標接口的指定參數類型和指定參數范圍,確定該目標接口的測試輸入參數。103、向該目標接口傳入該測試輸入參數,使得該目標接口基于該測試輸入參數運行,并生成測試報表,該測試報表用于確定該目標接口是否運行正常。本發明實施例提供的方法,通過獲取目標接口的定義信息,根據該目標接口的指定參數類型和指定參數范圍,確定該目標接口的測試輸入參數,并自動向該目標接口傳入該測試輸入參數,使得該目標接口基于該測試輸入參數運行,并生成測試報表,無需測試人員人工地分析定義信息即可對目標接口進行測試,節約了測試時間,提高了測試效率。在一種可能的實現方式中,該測試輸入參數包括第一測試輸入參數,該第一測試輸入參數為屬于該指定參數類型且屬于該指定參數范圍的參數,該方法還包括:根據該定義信息中該目標接口的功能描述信息,確定若向該目標接口傳入該第一測試輸入參數時應得的理論響應結果;當該測試報表中該第一測試輸入參數對應的實際響應結果與該理論響應結果匹配時,確定該目標接口運行正常。在另一種可能的實現方式中,該根據該目標接口的指定參數類型和指定參數范圍,確定該目標接口的測試輸入參數,包括:獲取該指定參數范圍中屬于該指定參數類型的中值,將該中值確定為測試輸入參數。在另一種可能的實現方式中,該測試輸入參數包括第二測試輸入參數,該第二測試輸入參數為不屬于該指定參數類型的參數,該方法還包括:當該測試報表中該第二測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定該目標接口運行正常。在另一種可能的實現方式中,該根據該目標接口的指定參數類型和指定參數范圍,確定該目標接口的測試輸入參數,包括:獲取屬于該指定參數類型的第一參數;對該第一參數的類型進行轉換,得到第二參數,該第二參數不屬于該指定參數類型;將該第二參數確定為測試輸入參數。在另一種可能的實現方式中,該測試輸入參數包括第三測試輸入參數,該第三測試輸入參數為不屬于該指定參數范圍的參數,該方法還包括:當該測試報表中該第三測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定該目標接口運行正常。在另一種可能的實現方式中,該指定參數類型包括必選參數類型,該測試輸入參數包括第四測試輸入參數,該第四測試輸入參數為空參數,該方法還包括:當該測試報表中該第四測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定該目標接口運行正常。在另一種可能的實現方式中,該定義信息包括該目標接口的多個指定參數類型以及對應的多個指定參數范圍,該根據該目標接口的指定參數類型和指定參數范圍,確定該目標接口的測試輸入參數,包括:將相互對應的指定參數類型和指定參數范圍作為一組,得到多個分組;根據每個分組內的指定參數類型和指定參數范圍,確定每個分組的備選輸入參數;將屬于不同分組的備選輸入參數進行組合,得到多種備選參數組合;從該多種備選參數組合中選取測試輸入參數組合,將該測試輸入參數組合中的每個參數確定為測試輸入參數。在另一種可能的實現方式中,該獲取目標接口的定義信息,包括:獲取js格式的第一接口文件,該第一接口文件包括該定義信息;將該第一接口文件轉化為JavaScript對象表示法json格式,得到第二接口文件;將該第二接口文件轉化為可擴展標記語言xml格式,得到第三接口文件;對該第三接口文件進行解析,得到該定義信息。上述所有可選技術方案,可以采用任意結合形成本公開的可選實施例,在此不再一一贅述。圖2是根據一示例性實施例示出的一種接口測試方法的流程圖,本發明實施例的執行主體為測試終端,如圖2所示,該接口測試方法包括以下步驟:201、測試終端獲取目標接口的定義信息。相關技術中,當需要測試目標接口時,在獲取該目標接口的定義信息后,測試人員需要人工地分析該定義信息,了解關于該目標接口的功能描述信息和輸入參數信息,通過大腦進行思考和判斷后,才能確定測試輸入參數。這種人工確定測試輸入參數的過程需要耗費很長的時間,并且測試效率低下。而在本發明實施例中,測試終端可以獲取目標接口的定義信息,直接根據目標接口的指定參數類型和指定參數范圍,確定測試輸入參數,無需測試人員分析該定義信息,從而節省了測試時間,提高了測試效率。其中,該測試終端可以為手機、電腦等,該目標接口可以為顯示接口、播放接口,當然也可以為提供其他功能的接口,本發明實施例對此不做限定。該定義信息包括該目標接口的指定參數類型以及對應的指定參數范圍,該指定參數類型是指該目標接口正常運行時輸入參數的類型,該指定參數范圍是指該目標接口正常運行時輸入參數所屬的范圍。其中,該指定參數類型可以為數值類型、字符串類型、數組類型、自定義類型等,當然也可以為其他類型,本發明實施例在此不做限定。該指定參數范圍與該指定參數類型對應,可以為0-10,a-d等。該指定參數類型與該指定參數范圍的對應關系可以如表1所示。表1指定參數類型指定參數范圍數值類型0-10字符串類型“中國,日本,美國”布爾類型true,false該定義信息還可以包括該目標接口的功能描述信息,該功能描述信息用于描述該目標接口在傳入指定參數時所能實現的功能。例如,該目標接口可以為取中值接口,該取中值接口的指定參數類型為“數值類型”,指定參數范圍為“0-10”,功能描述信息為“求取輸入參數的中值”,則該取中值接口的定義信息為(數值類型,0-10,取輸入參數的中值)。在實際應用中,任一接口的定義信息都是蘊含在該接口的接口文件中的,而該接口文件一般為js(JavaScript)格式,從這種格式的接口文件獲取定義信息較為不便。因此,在本發明實施例中,將目標接口的接口文件的格式從js格式轉換為xml(ExtensibleMarkupLanguage,可擴展標記語言)格式,便于測試終端從該接口文件中獲取定義信息。具體地,該格式轉換的步驟可以包括以下步驟一至步驟四:步驟一:獲取js格式的第一接口文件,該第一接口文件包括該定義信息。步驟二:將該第一接口文件轉化為json(JavaScriptObjectNotation,JavaScript對象表示法)格式,得到第二接口文件。由于直接從js格式的接口文件轉化為xml格式的接口文件較為困難,在將接口文件的格式從js格式轉化為xml格式前,測試終端可以首先將接口文件的格式從js格式轉化為json格式,再從json格式的接口文件轉化為xml格式的接口文件。其中,該測試終端在確定該js格式的第一接口文件后,可以根據apidoc-swagger技術協議,將該第一接口文件轉化為json格式的第二接口文件。步驟三:將該第二接口文件轉化為xml格式,得到第三接口文件。步驟四:對該第三接口文件進行解析,得到該定義信息。由于xml格式的第三接口文件具有可讀性強、格式標準、兼容度高的特點,從xml格式的第三接口文件獲取該定義信息,比從js格式的第一接口文件獲取定義信息速度更快、效率更高。通過執行上述對接口文件進行格式轉化的步驟,能夠提高測試終端測試目標接口的效率。202、測試終端根據該目標接口的指定參數類型和指定參數范圍,確定該目標接口的測試輸入參數。該指定參數類型和該指定參數范圍用于要求該目標接口的輸入參數的類型和范圍,那么,如果該目標接口運行正常,則在向該目標接口傳入符合該要求的正常輸入參數時,該目標接口應當返回正確的響應結果,。因此,可以向該目標接口傳入正常輸入參數,以根據返回的響應結果判斷該目標接口是否能夠正常運行。另一方面,如果該目標接口運行正常,則在向該目標接口傳入其他不符合要求的輸入參數時,該目標接口應當返回錯誤的響應結果。因此,可以向該目標接口傳入異常輸入參數,以根據返回的響應結果判斷該目標接口是否能夠正常運行。因此,當確定該目標接口的指定參數類型和指定參數范圍后,該測試終端可以為該接口確定多種符合要求或者不符合要求的測試輸入參數,以便更加全面、準確地測試該目標接口是否運行正常。針對確定測試輸入參數的過程,可以包括以下步驟一至步驟四:步驟一、該測試輸入參數包括第一測試輸入參數,該第一測試輸入參數為屬于該指定參數類型且屬于該指定參數范圍的參數:測試終端選取屬于該指定參數類型和該指定參數范圍的參數,作為測試輸入參數。例如,對于定義信息為(數值類型,0-10,求取輸入參數的中值)的取中值接口而言,該測試終端可以將3作為測試輸入參數。進一步地,測試終端可以獲取該指定參數范圍中屬于該指定參數類型的中值,將該中值確定為測試輸入參數。具體地,該測試終端可以獲取該指定參數范圍后,確定該指定參數范圍中的最小邊界值和最大邊界值,將該最小邊界值和最大邊界值相加除以2,得到該指定參數范圍的中值。之后,測試終端確定該中值的類型,當該中值的類型即為指定參數類型時,可將該中值作為屬于該指定參數類型的中值。當該中值的類型不為指定參數類型時,將該中值進行類型轉換,使該中值的類型轉換為該指定參數類型,從而確定屬于該指定參數類型的中值。例如,當目標接口的指定參數范圍為0-100,指定參數類型為整數類型,該測試終端可以確定指定參數最小值為0,指定參數最大值為100,確定指定參數的中值為50,將50作為測試輸入參數。在實際應用中,測試終端向目標接口傳入測試輸入參數時,可以采用“key-value”結構,為每個測試輸入參數確定一個數據標識,該數據標識作為key,該測試輸入參數作為value,該數據標識可以為該測試輸入參數的名稱、該測試終端為該測試輸入參數分配的編號等。步驟二、測試終端根據該目標接口的指定參數類型,確定第二測試輸入參數,該第二測試輸入參數為不屬于該指定參數類型的參數。為了測試當向該目標接口傳入類型不符合要求的輸入參數時該目標接口能否返回包括錯誤提示信息的響應結果,該測試終端可以獲取屬于該指定參數類型的第一參數,對該第一參數的類型進行轉換,得到第二參數,該第二參數不屬于該指定參數類型,則該第二參數屬于該第二測試輸入參數,該測試終端可以將該第二參數確定為測試輸入參數。另外,該測試終端可以直接從該指定參數范圍內隨機選取任意參數,作為第一參數,對該第一參數的類型進行轉換,得到不屬于該指定參數類型的第二參數。例如,該目標接口的指定參數范圍為0-100,指定參數類型為整數類型,該測試終端可以選取10,并將10轉換為浮點數類型,得到10.0,將10.0作為測試輸入參數。另外,當該第一參數的類型無法進行轉換時,該測試終端可以從多種參數類型中任意選取一種與該指定參數類型不同的參數類型,并隨機選取一個屬于該參數類型的數值,作為測試輸入參數。例如,當該指定參數類型為數值類型時,測試終端可以將屬于字符串類型的“abc”作為測試輸入參數。考慮如下情景:該目標接口為注冊接口,該注冊接口要求傳入的正常用戶標識不能包括特殊字符,而當用戶想要注冊一個用戶標識,在該注冊接口進行輸入操作,當傳入的用戶標識包括特殊字符時,該注冊接口應當返回錯誤提示信息,提示用戶輸入的用戶標識類型錯誤,以便用戶重新輸入類型符合要求的正常用戶標識。因此,當測試終端向該注冊接口傳入特殊字符時,根據該注冊接口是否返回錯誤提示信息可以確定該注冊接口是否運行正常。步驟三、測試終端根據該目標接口的指定參數范圍,確定第三測試輸入參數,該第三測試輸入參數為不屬于該指定參數范圍的參數。為了測試當向該目標接口傳入范圍不符合要求的輸入參數時,該目標接口能否返回包括錯誤提示信息的響應結果,該測試終端可以根據該指定參數范圍,確定不屬于該指定參數范圍的第三測試輸入參數。例如,當該指定參數范圍為0-10時,測試終端可以將12作為測試輸入參數。在一種可能的實現方式中,該測試終端可以根據該指定參數范圍,確定該指定參數范圍的最小邊界值和該指定參數范圍的最大邊界值,分別選取最小邊界溢出值和最大邊界溢出值,作為測試輸入參數。其中,該最小邊界溢出值指的是小于最小邊界值的數值,該最大邊界溢出值指的是大于該最大邊界值的數值。例如,該指定參數范圍為1-10,該測試終端可以將0和11作為兩個測試輸入參數。考慮如下情景:該目標接口為年齡輸入接口,該年齡輸入接口要求傳入的正常年齡數值范圍應該在0-130之間,而當用戶想要在該年齡輸入接口輸入自己的年齡數值,而輸入的數值為3000時,該目標接口應當返回錯誤提示信息,提示用戶輸入的數值范圍錯誤,以便用戶重新輸入屬于正常年齡數值范圍的年齡數值。因此,當測試終端向該年齡輸入接口傳入數值3000時,根據該年齡輸入接口是否返回錯誤提示信息可以確定該年齡輸入接口是否運行正常。步驟四、測試終端確定該指定參數類型包括必選參數類型,確定第四測試輸入參數,該第四測試輸入參數為空參數。其中,該必選參數類型是指必須進行賦值的參數。當該目標接口的指定參數類型包括必選參數類型時,為了測試當向該目標接口傳入空參數,該目標接口能否返回包括錯誤提示信息的響應結果。測試終端獲取該指定參數類型后,可以判斷該指定參數類型是否包括必選參數類型,當該指定參數類型包括該必選參數類型時,將空參數作為第四測試輸入參數。另外,如果該測試終端采用的測試輸入參數的數據結構為“key-value”結構,則該測試終端可以將測試輸入參數的數據標識key傳入空參數,從而向該目標接口傳入空參數。考慮如下情景:該目標接口為登錄接口,對于該登錄接口而言,用戶密碼屬于必選參數類型。即,該登錄接口要在獲取到用戶密碼的前提下,才能執行登錄操作,如果未獲取到用戶密碼,將不能執行登錄操作。那么,當用戶通過該登錄接口觸發登錄操作,想要基于用戶標識登錄卻沒有輸入用戶密碼時,該登錄接口應當返回例如“提醒:用戶密碼不能為空,請輸入用戶密碼”的錯誤提示信息,提醒用戶輸入用戶密碼。因此,當測試終端向該登錄接口傳入空參數時,根據該登錄接口是否返回錯誤提示信息可以確定該登錄接口是否運行正常。進一步地,考慮到在實際應用中,該目標接口在運行時可能需要傳入多個指定參數,并在定義信息中為每個指定參數確定指定參數類型和指定參數范圍,則在測試該目標接口時,需要確定測試輸入參數組合,該測試輸入參數組合包括多個測試輸入參數。那么,當該定義信息包括該目標接口的多個指定參數類型以及對應的多個指定參數范圍時,該步驟202還可以包括以下步驟2021-2024:2021、測試終端將相互對應的指定參數類型和指定參數范圍作為一組,得到多個分組。具體地,該測試終端可以根據該定義信息,確定該目標接口的多個輸入參數,并分別確定每個輸入參數的指定參數類型和指定參數范圍,將相互對應的指定參數類型和指定參數范圍作為一組,得到多個分組,分組的數量等于該多個輸入參數的數量。2022、測試終端根據每個分組內的指定參數類型和指定參數范圍,確定每個分組的備選輸入參數。具體地,測試終端在為任一分組確定備選輸入參數時,可以根據該分組內的指定參數類型和指定參數范圍,采用上述步驟一至步驟四,分別為該分組確定第一測試輸入參數、第二測試輸入參數、第三測試輸入參數和第四測試輸入參數這四種測試輸入參數,從而得到多個備選輸入參數。該多個備選輸入參數可以為同一種測試輸入參數,例如該多個備選輸入參數可以均為第一測試輸入參數,也可以不為同一種測試輸入參數,例如該多個備選輸入參數可以包括第一測試輸入參數和第二測試輸入參數,本發明實施例對此不做限定。2023、測試終端將屬于不同分組的備選輸入參數進行組合,得到多種備選參數組合。當測試終端為多個分組分別確定備選輸入參數后,可以從每個分組中隨機選取一個備選輸入參數,從而將從不同分組選取的多個備選輸入參數進行組合,得到第一種備選參數組合。此后,可以從每個分組中繼續隨機選取一個備選輸入參數,再次組合得到第二種備選參數組合,并以此類推,得到多種備選參數組合。2024、測試終端從該多種備選參數組合中選取測試輸入參數組合,將該測試輸入參數組合中的每個參數確定為測試輸入參數。當該測試終端得到多種備選參數組合后,可以根據pairwise(配對測試)算法,對該多種備選參數組合進行分析,從而從該多種備選參數組合中選取測試輸入參數。另外,該測試終端還可以向測試組合工具傳入該多種備選組合,該測試組合工具可以返回測試輸入組合。其中,該測試組合工具可以為pict工具、allpairs工具等,本發明實施例對此不做限定。例如,該目標接口可以包括三個輸入參數a,b,c,每個輸入參數的指定參數類型和指定參數范圍可以如表2所示:表2輸入參數abc指定參數類型整數類型、必選參數類型布爾類型浮點數類型指定參數范圍1-10true/false2.0-4.0該測試終端可以將輸入參數a對應的整數類型和1-10作為第一分組,將輸入參數b對應的布爾類型和true/false作為第二分組,將輸入參數c對應的浮點數類型和2.0-4.0作為第三分組。那么,該測試終端可以為第一分組確定備選輸入參數{5,“中國”,6,null},為第二分組確定備選輸入參數{true,false,30,null},為第三分組確定備選輸入參數{2.0,10,a,“abc”}。從第一分組的備選輸入參數中選取5,從第二分組中選取true,從第三分組中選取2.0,將(5,true,2.0)作為第一備選參數組合,然后,從第一分組的備選輸入參數中選取6,從第二分組中選取true,從第三分組中選取2.0,將(6,true,2.0)作為第二備選參數組合。由于第一備選參數組合和第二備選參數組合中選用的第二分組和第三分組的備選輸入參數相同,僅是選用的第一分組的備選輸入參數不同,而第一分組的備選輸入參數5和6均屬于第一測試輸入參數,是正常輸入參數,因此從這兩個第一測試輸入參數中任意選取某一個作為測試輸入參數即可達到測試目的,因此這兩個備選參數組合存在冗余參數組合,如果測試冗余參數組合,將造成測試時間的浪費。因此,可以從這兩個備選參數組合中選取任一個備選參數組合進行測試,從而避免了測試冗余參數組合的情況,節約了測試時間,減少了測試工作量。203、測試終端向該目標接口傳入該測試輸入參數。例如,該目標接口在服務端運行時,該測試終端與該目標接口可以基于HTTP(HyperTextTransferProtocol,超文本傳輸協議)進行數據的傳送,即該測試終端可以向該目標接口發送HTTP請求,該HTTP請求攜帶該測試輸入參數,以向該目標接口傳入該測試輸入參數。其中,該HTTP請求可以為get請求、post請求等,本發明實施例對此不做限定。204、該目標接口基于該測試輸入參數運行,并生成測試報表。其中,該測試報表包括該目標接口在傳入測試輸入參數后的實際響應結果,該測試報表用于確定該目標接口是否運行正常。另外,當該測試終端向該目標接口傳入不同的測試輸入參數時,該目標接口可以生成與該測試輸入參數對應的測試報表。在第一種可能的實現方式中,當該測試輸入參數包括第一測試輸入參數時,測試終端根據該定義信息中該目標接口的功能描述信息,確定若向該目標接口傳入該第一測試輸入參數時應得的理論響應結果,當該測試報表中該第一測試輸入參數對應的實際響應結果與該理論響應結果匹配時,確定該目標接口運行正常,當該測試報表中該第二測試輸入參數對應的實際響應結果與該理論響應結果不匹配時,確定該目標接口運行錯誤。基于上述表1的舉例,該目標接口的指定參數類型為數值類型,指定參數范圍為0-10,功能描述信息為“求取輸入參數的中值”,當向該目標接口傳入8時,理論響應結果為4,但當該目標接口基于8運行后,測試報表中與8對應的實際響應結果為2,此時,確定該目標接口運行錯誤。在第二種可能的實現方式中,當該測試輸入參數包括第二測試輸入參數時,測試終端判斷該測試報表中該第二測試輸入參數對應的實際響應結果是否包括錯誤提示信息,當該測試報表中該第二測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定該目標接口運行正常,當該測試報表中該第二測試輸入參數對應的實際響應結果不包括錯誤提示信息時,確定該目標接口運行錯誤。基于上述表1的舉例,該目標接口的指定參數類型為數值類型,向該目標接口傳入屬于字符串類型的“abc”后,該目標接口基于“abc”運行后,測試報表與“abc”對應的實際響應結果包括“輸入參數類型錯誤”的錯誤提示信息,此時可以確定該目標接口運行正常。在第三種可能的實現方式中,當該測試輸入參數包括第三測試輸入參數時,測試終端判斷該測試報表中該第二測試輸入參數對應的實際響應結果是否包括錯誤提示信息,當該測試報表中該第三測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定該目標接口運行正常,當該測試報表中該第三測試輸入參數對應的實際響應結果不包括錯誤提示信息時,確定該目標接口運行錯誤。基于上述表1的舉例,該目標接口的指定參數范圍為0-10,向該目標接口傳入11后,該目標接口基于11運行后,測試報表與11對應的實際響應結果包括“輸入參數范圍錯誤”的錯誤提示信息,此時可以確定該目標接口運行正常。在第四種可能的實現方式中,當該測試輸入參數包括第四測試輸入參數時,測試終端判斷該測試報表中該第二測試輸入參數對應的實際響應結果是否包括錯誤提示信息,當該測試報表中該第四測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定該目標接口運行正常,當該測試報表中該第四測試輸入參數對應的實際響應結果不包括錯誤提示信息時,確定該目標接口運行錯誤。該目標接口的輸入參數a屬于必選參數類型,測試終端將空參數作為測試輸入參數a,向該目標接口傳入空參數,則當目標接口基于空參數運行后,測試報表中與空參數對應的響應結果包括“輸入參數a不能為空”的錯誤提示信息,此時可以確定該目標接口運行正常。本發明實施例提供的方法,通過獲取目標接口的定義信息,根據該目標接口的指定參數類型和指定參數范圍,確定該目標接口的測試輸入參數,并自動向該目標接口傳入該測試輸入參數,使得該目標接口基于該測試輸入參數運行,并生成測試報表,無需測試人員人工地分析定義信息即可對目標接口進行測試,節約了測試時間,提高了測試效率。進一步地,將第一接口文件的格式從js格式轉換為xml格式,從而便于從第一接口文件中獲取定義信息,提高了測試效率。進一步地,通過all-pairs算法從多種備選參數組合中選取測試輸入參數組合,避免了測試冗余參數組合的情況,從而節約了測試時間,減少了測試工作量。圖3是本發明實施例提供的一種子元素測試裝置的結構示意圖,如圖3所示,該裝置包括獲取模塊301、確定模塊302和參數傳入模塊303。獲取模塊301,用于獲取目標接口的定義信息,所述定義信息包括所述目標接口的指定參數類型以及對應的指定參數范圍,所述指定參數類型是指所述目標接口正常運行時輸入參數的類型,所述指定參數范圍是指所述目標接口正常運行時輸入參數所屬的范圍;確定模塊302,用于根據所述目標接口的指定參數類型和指定參數范圍,確定所述目標接口的測試輸入參數;參數傳入模塊303,用于向所述目標接口傳入所述測試輸入參數,使得所述目標接口基于所述測試輸入參數運行,并生成測試報表,所述測試報表用于確定所述目標接口是否運行正常。本發明實施例提供的裝置,通過獲取目標接口的定義信息,根據該目標接口的指定參數類型和指定參數范圍,確定該目標接口的測試輸入參數,并自動向該目標接口傳入該測試輸入參數,使得該目標接口基于該測試輸入參數運行,并生成測試報表,無需測試人員人工地分析定義信息即可對目標接口進行測試,節約了測試時間,提高了測試效率。在一種可能的實現方式中,所述測試輸入參數包括第一測試輸入參數,所述第一測試輸入參數為屬于所述指定參數類型且屬于所述指定參數范圍的參數,所述確定模塊302,還用于根據所述定義信息中所述目標接口的功能描述信息,確定若向所述目標接口傳入所述第一測試輸入參數時應得的理論響應結果;所述確定模塊302,還用于當所述測試報表中所述第一測試輸入參數對應的實際響應結果與所述理論響應結果匹配時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述確定模塊302,還用于獲取所述指定參數范圍中屬于所述指定參數類型的中值,將所述中值確定為測試輸入參數。在另一種可能的實現方式中,所述測試輸入參數包括第二測試輸入參數,所述第二測試輸入參數為不屬于所述指定參數類型的參數,所述確定模塊302,還用于當所述測試報表中所述第二測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述根據所述目標接口的指定參數類型和指定參數范圍,所述確定模塊302,包括:獲取單元,用于獲取屬于所述指定參數類型的第一參數;類型轉換單元,用于對所述第一參數的類型進行轉換,得到第二參數,所述第二參數不屬于所述指定參數類型;確定單元,用于將所述第二參數確定為測試輸入參數。在另一種可能的實現方式中,所述測試輸入參數包括第三測試輸入參數,所述第三測試輸入參數為不屬于所述指定參數范圍的參數,所述確定模塊302,還用于當所述測試報表中所述第三測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述指定參數類型包括必選參數類型,所述測試輸入參數包括第四測試輸入參數,所述第四測試輸入參數為空參數,所述確定模塊302,還用于當所述測試報表中所述第四測試輸入參數對應的實際響應結果包括錯誤提示信息時,確定所述目標接口運行正常。在另一種可能的實現方式中,所述定義信息包括所述目標接口的多個指定參數類型以及對應的多個指定參數范圍,所述根據所述目標接口的指定參數類型和指定參數范圍,所述確定模塊302,包括:分組單元,用于將相互對應的指定參數類型和指定參數范圍作為一組,得到多個分組;確定單元,用于根據每個分組內的指定參數類型和指定參數范圍,確定每個分組的備選輸入參數;組合單元,用于將屬于不同分組的備選輸入參數進行組合,得到多種備選參數組合;選取單元,用于從所述多種備選參數組合中選取測試輸入參數組合,將所述測試輸入參數組合中的每個參數確定為測試輸入參數。在另一種可能的實現方式中,所述獲取模塊301,包括:獲取單元,用于獲取js格式的第一接口文件,所述第一接口文件包括所述定義信息;格式轉化單元,用于將所述第一接口文件轉化為JavaScript對象表示法json格式,得到第二接口文件;所述格式轉化單元,還用于將所述第二接口文件轉化為可擴展標記語言xml格式,得到第三接口文件;解析單元,用于對所述第三接口文件進行解析,得到所述定義信息。需要說明的是:上述實施例提供的接口測試裝置在測試接口時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將測試終端的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的接口測試裝置與接口測試方法實施例屬于同一構思,其具體實現過程詳見方法實施例,這里不再贅述。本實施例提供了一種終端,該終端可以用于執行上述各個實施例中提供的接口測試方法。參見圖4,該終端400包括:終端400可以包括RF(RadioFrequency,射頻)電路110、包括有一個或一個以上計算機可讀存儲介質的存儲器120、輸入單元130、顯示單元140、傳感器150、音頻電路160、WiFi(WirelessFidelity,無線保真)模塊170、包括有一個或者一個以上處理核心的處理器180、以及電源40等部件。本領域技術人員可以理解,圖4中示出的終端結構并不構成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:RF電路110可用于收發信息或通話過程中,信號的接收和發送,特別地,將基站的下行信息接收后,交由一個或者一個以上處理器180處理;另外,將涉及上行的數據發送給基站。通常,RF電路110包括但不限于天線、至少一個放大器、調諧器、一個或多個振蕩器、用戶身份模塊(SIM)卡、收發信機、耦合器、LNA(LowNoiseAmplifier,低噪聲放大器)、雙工器等。此外,RF電路110還可以通過無線通信與網絡和其他設備通信。所述無線通信可以使用任一通信標準或協議,包括但不限于GSM(GlobalSystemofMobilecommunication,全球移動通訊系統)、GPRS(GeneralPacketRadioService,通用分組無線服務)、CDMA(CodeDivisionMultipleAccess,碼分多址)、WCDMA(WidebandCodeDivisionMultipleAccess,寬帶碼分多址)、LTE(LongTermEvolution,長期演進)、電子郵件、SMS(ShortMessagingService,短消息服務)等。存儲器120可用于存儲軟件程序以及模塊,處理器180通過運行存儲在存儲器120的軟件程序以及模塊,從而執行各種功能應用以及數據處理。存儲器120可主要包括存儲程序區和存儲數據區,其中,存儲程序區可存儲操作系統、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數據區可存儲根據終端400的使用所創建的數據(比如音頻數據、電話本等)等。此外,存儲器120可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態存儲器件。相應地,存儲器120還可以包括存儲器控制器,以提供處理器180和輸入單元130對存儲器120的訪問。輸入單元130可用于接收輸入的數字或字符信息,以及產生與用戶設置以及功能控制有關的鍵盤、鼠標、操作桿、光學或者軌跡球信號輸入。具體地,輸入單元130可包括觸敏表面131以及其他輸入設備132。觸敏表面131,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面131上或在觸敏表面131附近的操作),并根據預先設定的程式驅動相應的連接裝置。可選的,觸敏表面131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉換成觸點坐標,再送給處理器180,并能接收處理器180發來的命令并加以執行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現觸敏表面131。除了觸敏表面131,輸入單元130還可以包括其他輸入設備132。具體地,其他輸入設備132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。顯示單元140可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端400的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標、視頻和其任意組合來構成。顯示單元140可包括顯示面板141,可選的,可以采用LCD(LiquidCrystalDisplay,液晶顯示器)、OLED(OrganicLight-EmittingDiode,有機發光二極管)等形式來配置顯示面板141。進一步的,觸敏表面131可覆蓋顯示面板141,當觸敏表面131檢測到在其上或附近的觸摸操作后,傳送給處理器180以確定觸摸事件的類型,隨后處理器180根據觸摸事件的類型在顯示面板141上提供相應的視覺輸出。雖然在圖4中,觸敏表面131與顯示面板141是作為兩個獨立的部件來實現輸入和輸入功能,但是在某些實施例中,可以將觸敏表面131與顯示面板141集成而實現輸入和輸出功能。終端400還可包括至少一種傳感器150,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環境光傳感器及接近傳感器,其中,環境光傳感器可根據環境光線的明暗來調節顯示面板141的亮度,接近傳感器可在終端400移動到耳邊時,關閉顯示面板141和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態的應用(比如橫豎屏切換、相關游戲、磁力計姿態校準)、振動識別相關功能(比如計步器、敲擊)等;至于終端400還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。音頻電路160、揚聲器161,傳聲器162可提供用戶與終端400之間的音頻接口。音頻電路160可將接收到的音頻數據轉換后的電信號,傳輸到揚聲器161,由揚聲器161轉換為聲音信號輸出;另一方面,傳聲器162將收集的聲音信號轉換為電信號,由音頻電路160接收后轉換為音頻數據,再將音頻數據輸出處理器180處理后,經RF電路110以發送給比如另一終端,或者將音頻數據輸出至存儲器120以便進一步處理。音頻電路160還可能包括耳塞插孔,以提供外設耳機與終端400的通信。WiFi屬于短距離無線傳輸技術,終端400通過WiFi模塊170可以幫助用戶收發電子郵件、瀏覽網頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯網訪問。雖然圖4示出了WiFi模塊170,但是可以理解的是,其并不屬于終端400的必須構成,完全可以根據需要在不改變發明的本質的范圍內而省略。處理器180是終端400的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執行存儲在存儲器120內的軟件程序和/或模塊,以及調用存儲在存儲器120內的數據,執行終端400的各種功能和處理數據,從而對手機進行整體監控。可選的,處理器180可包括一個或多個處理核心;優選的,處理器180可集成應用處理器和調制解調處理器,其中,應用處理器主要處理操作系統、用戶界面和應用程序等,調制解調處理器主要處理無線通信。可以理解的是,上述調制解調處理器也可以不集成到處理器180中。終端400還包括給各個部件供電的電源40(比如電池),優選的,電源可以通過電源管理系統與處理器180邏輯相連,從而通過電源管理系統實現管理充電、放電、以及功耗管理等功能。電源40還可以包括一個或一個以上的直流或交流電源、再充電系統、電源故障檢測電路、電源轉換器或者逆變器、電源狀態指示器等任意組件。盡管未示出,終端400還可以包括攝像頭、藍牙模塊等,在此不再贅述。具體在本實施例中,終端的顯示單元是觸摸屏顯示器,終端還包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經配置以由一個或者一個以上處理器執行。所述一個或者一個以上程序包含用于實施上述實施例中測試終端所執行操作的指令。本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。當前第1頁1 2 3