本發(fā)明涉及計算機技術領域,具體涉及一種生成接口測試用例的方法和裝置。
背景技術:
接口測試是項目測試的一部分,它測試的主要對象是接口,是測試系統(tǒng)組件間接口的一種測試。接口測試主要用于檢測外部系統(tǒng)與所測系統(tǒng)之間以及內部各系統(tǒng)之間的交互點,測試的重點是檢查數據交互、傳遞、和控制管理過程以及系統(tǒng)間的相互依賴關系等。接口測試需要用到多個測試用例,測試用例(Test Case)是為某個特殊目標而編制的一組測試輸入、執(zhí)行條件以及預期結果的數據,以便測試某個程序路徑或核實是否滿足某個特定需求?,F有技術中,測試人員往往需要自行編寫測試用例,耗費大量時間和人力。
技術實現要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的生成接口測試用例的方法和裝置。
依據本發(fā)明的一個方面,提供了一種生成接口測試用例的方法,包括:對日志數據進行學習,分析出接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫中;對于一個待測接口,確定該待測接口相關的一個或多個特征值;根據所確定的一個或多個特征值從特征庫中查詢出各自對應的一個或多個易犯錯誤描述信息;根據查詢出的一個或多個易犯錯誤描述信息生成該待測接口的測試用例。
可選地,該方法進一步包括:獲取已上線接口的日志數據。
可選地,所述特征值包括:接口輸入參數的不同類型,和/或,接口對應的不同業(yè)務模式類型。
可選地,所述確定該待測接口相關的一個或多個特征值包括:根據該待測接口的描述文檔中的描述信息確定該待測接口相關的一個或多個特征值。
可選地,根據該待測接口的描述文檔中的描述信息確定該待測接口相關的一個或多個特征值包括:將該待測接口的描述文件中描述的該待測接口的輸入參數類型作為特征值;和/或,將該待測接口的描述文件中描述的該待測接口對應的業(yè)務模式類型作為特征值。
可選地,根據查詢出的一個或多個易犯錯誤描述信息生成該待測接口的測試用例包括:根據查詢的每一個易犯錯誤描述信息,生成至少一個測試用例。
可選地,該方法進一步包括:利用所生成的測試用例,對該待測接口進行測試。
依據本發(fā)明的另一方面,提供了一種生成接口測試用例的裝置,包括:日志學習單元,適于對日志數據進行學習,分析出接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫中;存儲單元,適于保存所述特征庫;測試用例生成單元,適于對于一個待測接口,確定該待測接口相關的一個或多個特征值;根據所確定的一個或多個特征值從特征庫中查詢出各自對應的一個或多個易犯錯誤描述信息;根據查詢出的一個或多個易犯錯誤描述信息生成該待測接口的測試用例。
可選地,該裝置進一步包括:日志獲取單元,適于獲取已上線接口的日志數據。
可選地,所述特征值包括:接口輸入參數的不同類型,和/或,接口對應的不同業(yè)務模式類型。
可選地,所述測試用例生成單元,適于根據該待測接口的描述文檔中的描述信息確定該待測接口相關的一個或多個特征值。
可選地,所述測試用例生成單元,適于將該待測接口的描述文件中描述的該待測接口的輸入參數類型作為特征值;和/或,將該待測接口的描述文件中描述的該待測接口對應的業(yè)務模式類型作為特征值。
可選地,所述測試用例生成單元,適于根據查詢的每一個易犯錯誤描述信息,生成至少一個測試用例。
可選地,該裝置進一步包括:測試處理單元,適于利用所生成的測試用例,對該待測接口進行測試。
由上述可知,本發(fā)明的技術方案,通過對采集到的日志數據進行學習,從中分析得到接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫,在接口測試中,對于一個待測接口,首先確定該待測接口相關的一個或多個特征值,再從特征庫中根據所確定的一個或多個特征值查詢出各自對應的一個或多個易犯錯誤描述信息,據此生成該待測接口的測試用例。該技術方案通過對大數據的學習可以自動生成接口測試用例,不再需要測試人員進行測試用例的編寫,極大地提高了測試效率并節(jié)約了人力資源。
上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據本發(fā)明一個實施例的一種生成接口測試用例的方法的流程圖;
圖2示出了根據本發(fā)明一個實施例的一種生成接口測試用例的裝置的結構示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示 了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
圖1示出了根據本發(fā)明一個實施例的一種生成接口測試用例的方法的流程圖,如圖1所示,該方法包括:
步驟S110,對日志數據進行學習,分析出接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫中。
步驟S120,對于一個待測接口,確定該待測接口相關的一個或多個特征值。
步驟S130,根據所確定的一個或多個特征值從特征庫中查詢出各自對應的一個或多個易犯錯誤描述信息。
步驟S140,根據查詢出的一個或多個易犯錯誤描述信息生成該待測接口的測試用例。
可見,圖1所示的方法,通過對采集到的日志數據進行學習,從中分析得到接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫,在接口測試中,對于一個待測接口,首先確定該待測接口相關的一個或多個特征值,再從特征庫中根據所確定的一個或多個特征值查詢出各自對應的一個或多個易犯錯誤描述信息,據此生成該待測接口的測試用例。該技術方案通過對大數據的學習可以自動生成接口測試用例,不再需要測試人員進行測試用例的編寫,極大地提高了測試效率并節(jié)約了人力資源。
在本發(fā)明的一個實施例中,圖1所示的方法進一步包括:獲取已上線接口的日志數據。
日志數據可以為錯誤日志,也可以為正確返回的日志。需要注意的是,并不一定需要獲取某一特定接口的日志進行學習,可以獲取多個接口的日志來進行大數據學習。因為即使是不同的接口,也可能包含相同的特征值。對于某一個特征值,在日志數據中可能會對應記錄返回碼,如錯誤日志會記錄錯誤返回碼。
在本發(fā)明的一個實施例中,圖1所示的方法中,特征值包括:接口輸入參數的不同類型,和/或,接口對應的不同業(yè)務模式類型。
例如,接口輸入參數的類型為string型或int型,這些都可以分別確定為該接口的特征值。又例如,接口對應的是廣告業(yè)務,則可以將廣告業(yè)務確定為該接口的特征值。也就是說,特征值的確定不僅可以根據接口本身的相關參數信息進行確定,還可以考慮該接口所屬的大業(yè)務框架,將業(yè)務模式類型確定為特征值。這是由于在分析大批日志數據時發(fā)現,同一接口輸入參數類型的接口,90%的錯誤集中在同一部分,因此特征值可以為接口輸入參數的不同類型。
在本發(fā)明的一個實施例中,圖1所示的方法中,確定該待測接口相關的一個或多個特征值包括:根據該待測接口的描述文檔中的描述信息確定該待測接口相關的一個或多個特征值。
待測接口的描述文檔中通常會記錄該接口的輸入參數類型,如string型,int型,關鍵字等等,這些特征值與通過學習日志確定的特征值是對應的。由于針對這些特征值,已經在特征庫中保存了與特征值應的一個或多個易犯錯誤描述信息,如錯誤返回碼40101,那么針對這樣的一個或多個易犯錯誤描述信息就可以進一步生成該待測接口的測試用例。
具體地,上述方法中,根據該待測接口的描述文檔中的描述信息確定該待測接口相關的一個或多個特征值包括:將該待測接口的描述文件中描述的該待測接口的輸入參數類型作為特征值;和/或,將該待測接口的描述文件中描述的該待測接口對應的業(yè)務模式類型作為特征值。
例如,該待測接口對應的業(yè)務模式類型為廣告業(yè)務,輸入參數類型為關鍵字“price”,int型,則該待測接口的特征值為廣告、price、int型。
在本發(fā)明的一個實施例中,圖1所示的方法中,根據查詢出的一個或多個易犯錯誤描述信息生成該待測接口的測試用例包括:根據查詢的每一個易犯錯誤描述信息,生成至少一個測試用例。
由于包含該特征值的接口,分析已獲得的日志數據已經發(fā)現經常出現易犯錯誤描述信息中的錯誤,而避免該接口出現類似錯誤就是進行接口測試的目的,因此為了確保每一個易犯錯誤描述信息所對應的錯誤不會在該接口實 際應用中發(fā)生,所以可以查詢的每一個易犯錯誤描述信息,生成至少一個測試用例。例如,string型對應的易犯錯誤描述信息中,常見的錯誤如長度錯誤,語言錯誤,這些就是輸入string的時候經常會出現的錯誤;又例如關鍵詞這個特征值,例如出價,對應的易犯錯誤描述信息中包括輸入值為負值或零,這樣就可以對應生成一個或多個測試用例,如對于特征值為string型,生成長度不同的多個測試用例和語言不同的多個測試用例。
在本發(fā)明的一個實施例中,上述方法進一步包括:利用所生成的測試用例,對該待測接口進行測試。
可以在對待測接口生成所有測試用例后再進對該待測接口進行測試,也可以對待測接口的某一個特征值生成所有測試用例后,利用生成的測試用例對該特征值進行測試。
圖2示出了根據本發(fā)明一個實施例的一種生成接口測試用例的裝置的結構示意圖,如圖2所示,生成接口測試用例的裝置200包括:
日志學習單元210,適于對日志數據進行學習,分析出接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫中。
存儲單元220,適于保存特征庫。
測試用例生成單元230,適于對于一個待測接口,確定該待測接口相關的一個或多個特征值;根據所確定的一個或多個特征值從特征庫中查詢出各自對應的一個或多個易犯錯誤描述信息;根據查詢出的一個或多個易犯錯誤描述信息生成該待測接口的測試用例。
可見,圖2所示的裝置,通過對采集到的日志數據進行學習,從中分析得到接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫,在接口測試中,對于一個待測接口,首先確定該待測接口相關的一個或多個特征值,再從特征庫中根據所確定的一個或多個特征值查詢出各自對應的一個或多個易犯錯誤描述信息,據此生成該待測接口的測試用例。該技術方案通過對大數據的學習可以自動生成接口測試用例,不再需要測試人員進行測試用例的編寫,極大地提高了測試效率并節(jié)約了人力資源。
在本發(fā)明的一個實施例中,圖2所示的裝置進一步包括:日志獲取單元,適于獲取已上線接口的日志數據。
日志數據可以為錯誤日志,也可以為正確返回的日志。需要注意的是,并不一定需要獲取某一特定接口的日志進行學習,可以獲取多個接口的日志來進行大數據學習。因為即使是不同的接口,也可能包含相同的特征值。對于某一個特征值,在日志數據中可能會對應記錄返回碼,如錯誤日志會記錄錯誤返回碼。
在本發(fā)明的一個實施例中,圖2所示的裝置中,特征值包括:接口輸入參數的不同類型,和/或,接口對應的不同業(yè)務模式類型。
例如,接口輸入參數的類型為string型或int型,這些都可以分別確定為該接口的特征值。又例如,接口對應的是廣告業(yè)務,則可以將廣告業(yè)務確定為該接口的特征值。也就是說,特征值的確定不僅可以根據接口本身的相關參數信息進行確定,還可以考慮該接口所屬的大業(yè)務框架,將業(yè)務模式類型確定為特征值。這是由于在分析大批日志數據時發(fā)現,同一接口輸入參數類型的接口,90%的錯誤集中在同一部分,因此特征值可以為接口輸入參數的不同類型。
在本發(fā)明的一個實施例中,圖2所示的裝置中,測試用例生成單元,適于根據該待測接口的描述文檔中的描述信息確定該待測接口相關的一個或多個特征值。
待測接口的描述文檔中通常會記錄該接口的輸入參數類型,如string型,int型,關鍵字等等,這些特征值與通過學習日志確定的特征值是對應的。由于針對這些特征值,已經在特征庫中保存了與特征值應的一個或多個易犯錯誤描述信息,如錯誤返回碼40101,那么針對這樣的一個或多個易犯錯誤描述信息就可以進一步生成該待測接口的測試用例。
在本發(fā)明的一個實施例中,上述裝置中,測試用例生成單元,適于將該待測接口的描述文件中描述的該待測接口的輸入參數類型作為特征值;和/或,將該待測接口的描述文件中描述的該待測接口對應的業(yè)務模式類型作為特征值。
例如,該待測接口對應的業(yè)務模式類型為廣告業(yè)務,輸入參數類型為關 鍵字“price”,int型,則該待測接口的特征值為廣告、price、int型。
在本發(fā)明的一個實施例中,圖2所示的裝置中,測試用例生成單元,適于根據查詢的每一個易犯錯誤描述信息,生成至少一個測試用例。
由于包含該特征值的接口,分析已獲得的日志數據已經發(fā)現經常出現易犯錯誤描述信息中的錯誤,而避免該接口出現類似錯誤就是進行接口測試的目的,因此為了確保每一個易犯錯誤描述信息所對應的錯誤不會在該接口實際應用中發(fā)生,所以可以查詢的每一個易犯錯誤描述信息,生成至少一個測試用例。例如,string型對應的易犯錯誤描述信息中,常見的錯誤如長度錯誤,語言錯誤,這些就是輸入string的時候經常會出現的錯誤;又例如關鍵詞這個特征值,例如出價,對應的易犯錯誤描述信息中包括輸入值為負值或零,這樣就可以對應生成一個或多個測試用例,如對于特征值為string型,生成長度不同的多個測試用例和語言不同的多個測試用例。
在本發(fā)明的一個實施例中,上述裝置進一步包括:測試處理單元,適于利用所生成的測試用例,對該待測接口進行測試。
可以在對待測接口生成所有測試用例后再進對該待測接口進行測試,也可以對待測接口的某一個特征值生成所有測試用例后,利用生成的測試用例對該特征值進行測試。
綜上所述,本發(fā)明的技術方案,通過對采集到的日志數據進行學習,從中分析得到接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫,在接口測試中,對于一個待測接口,首先確定該待測接口相關的一個或多個特征值,再從特征庫中根據所確定的一個或多個特征值查詢出各自對應的一個或多個易犯錯誤描述信息,據此生成該待測接口的測試用例。該技術方案通過對大數據的學習可以自動生成接口測試用例,不再需要測試人員進行測試用例的編寫,極大地提高了測試效率并節(jié)約了人力資源。
需要說明的是:
在此提供的算法和顯示不與任何特定計算機、虛擬裝置或者其它設備固有相關。各種通用裝置也可以與基于在此的示教一起使用。根據上面的描述,構造這類裝置所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定 編程語言。應當明白,可以利用各種編程語言實現在此描述的本發(fā)明的內容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當 理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發(fā)明實施例的生成接口測試用例的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發(fā)明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了A1、一種生成接口測試用例的方法,其中,該方法包括:
對日志數據進行學習,分析出接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫中;
對于一個待測接口,確定該待測接口相關的一個或多個特征值;
根據所確定的一個或多個特征值從特征庫中查詢出各自對應的一個或多個易犯錯誤描述信息;
根據查詢出的一個或多個易犯錯誤描述信息生成該待測接口的測試用例。
A2、如A1所述的方法,其中,該方法進一步包括:獲取已上線接口的日志數據。
A3、如A1所述的方法,其中,
所述特征值包括:接口輸入參數的不同類型,和/或,接口對應的不同業(yè)務模式類型。
A4、如A1所述的方法,其中,所述確定該待測接口相關的一個或多個特征值包括:
根據該待測接口的描述文檔中的描述信息確定該待測接口相關的一個或多個特征值。
A5、如A4所述的方法,其中,根據該待測接口的描述文檔中的描述信息確定該待測接口相關的一個或多個特征值包括:
將該待測接口的描述文件中描述的該待測接口的輸入參數類型作為特征值;
和/或,
將該待測接口的描述文件中描述的該待測接口對應的業(yè)務模式類型作為特征值。
A6、如A1所述的方法,其中,根據查詢出的一個或多個易犯錯誤描述信息生成該待測接口的測試用例包括:
根據查詢的每一個易犯錯誤描述信息,生成至少一個測試用例。
A7、如A1-A6中任一項所述的方法,其中,該方法進一步包括:
利用所生成的測試用例,對該待測接口進行測試。
本發(fā)明還公開了B8、一種生成接口測試用例的裝置,其中,該裝置包括:
日志學習單元,適于對日志數據進行學習,分析出接口相關的不同的特征值對應的易犯錯誤,并將各特征值和對應的易犯錯誤描述信息一一對應地保存到特征庫中;
存儲單元,適于保存所述特征庫;
測試用例生成單元,適于對于一個待測接口,確定該待測接口相關的一個或多個特征值;根據所確定的一個或多個特征值從特征庫中查詢出各自對應的一個或多個易犯錯誤描述信息;根據查詢出的一個或多個易犯錯誤描述信息生成該待測接口的測試用例。
B9、如B8所述的裝置,其中,該裝置進一步包括:
日志獲取單元,適于獲取已上線接口的日志數據。
B10、如B8所述的裝置,其中,
所述特征值包括:接口輸入參數的不同類型,和/或,接口對應的不同業(yè) 務模式類型。
B11、如B8所述的裝置,其中,
所述測試用例生成單元,適于根據該待測接口的描述文檔中的描述信息確定該待測接口相關的一個或多個特征值。
B12、如B11所述的裝置,其中,
所述測試用例生成單元,適于將該待測接口的描述文件中描述的該待測接口的輸入參數類型作為特征值;和/或,將該待測接口的描述文件中描述的該待測接口對應的業(yè)務模式類型作為特征值。
B13、如B8所述的裝置,其中,
所述測試用例生成單元,適于根據查詢的每一個易犯錯誤描述信息,生成至少一個測試用例。
B14、如B8-B13中中任一項所述的裝置,其中,該裝置進一步包括:測試處理單元,適于利用所生成的測試用例,對該待測接口進行測試。