本公開涉及計算機,具體涉及一種基于接口特征的接口用例生成方法及系統。
背景技術:
1、隨著信息技術的不斷發(fā)展,現代web應用程序越來越多地采用微服務架構,即前端界面展示和后端服務功能分離,其中包括眾多獨立的服務單元,每個服務單元負責特定的功能;基于這種特性產生了接口自動化測試方法,通過自動化測試,可以顯著提高軟件開發(fā)的效率和質量,確保在持續(xù)集成和持續(xù)交付(ci/cd)過程中,每次代碼提交都能快速驗證其正確性和穩(wěn)定性,是服務端質量保證的重要手段之一;而在接口自動化測試中,代碼覆蓋率指標被廣泛用作度量標準,用于評估測試的充分性和有效性,這一指標能夠明確地引導自動化測試的建設和優(yōu)化,自動化測試的效果提升也非常明顯。
2、然而,隨著自動化測試工作的不斷深入,代碼覆蓋率逐漸達到了一個瓶頸,難以繼續(xù)提升,這一現象背后的原因是多方面的,概括為:
3、(1)測試人員的認知不足:接口測試高度依賴于測試人員對系統的理解和用例設計的能力,如果測試人員對系統的理解不夠深入,或者缺乏有效的工具和方法來設計全面的測試用例,很容易出現用例遺漏,從而影響測試的覆蓋率。
4、(2)公司產品微服務部署:公司采用微服務架構部署產品,這雖然提高了系統的可擴展性和靈活性,但也增加了測試的復雜性;微服務之間的交互頻繁,調用鏈路長,使得測試人員難以全面掌握每個服務的依賴關系和交互邏輯。
5、(3)自動化接口入參數量多:很多接口的入參組合復雜,涉及多個參數的排列組合,手動編寫和維護這些測試用例不僅耗時耗力,而且容易出錯,影響測試的效率和質量。
6、因此,現有對微服務的接口自動化測試方案對測試人員有嚴重依賴,導致測試效果不佳。
技術實現思路
1、本公開為了解決上述問題,提出了一種基于接口特征的接口用例生成方法及系統,自動構建全面的接口測試用例,提高自測質量,減少潛在的問題和錯誤。
2、根據一些實施例,本公開采用如下技術方案:
3、一種基于接口特征的接口用例生成方法,包括:
4、收集待測業(yè)務系統中各個接口的調用鏈信息,并基于調用鏈信息生成接口特征,組成接口特征庫;
5、獲取已測試的接口用例的調用鏈信息,生成用例特征表;
6、從接口特征庫中篩選出用例特征表未覆蓋到的接口特征,為篩選出來的接口特征構建對應的入參組合,生成新的接口用例。
7、進一步的,所述收集待測業(yè)務系統中各個接口的調用鏈信息,具體為:
8、在業(yè)務系統代碼中插入監(jiān)控代碼,通過性能監(jiān)控平臺捕獲系統運行時接口的接口信息,包括traceid、接口名稱、接口請求url、接口入參信息、請求經過的數據庫、redis中間件信息;
9、基于接口之間的調用關系,一個接口請求從客戶端發(fā)出后形成一條調用路徑,得到調用鏈信息。
10、進一步的,所述生成接口特征,是特征庫引擎讀取接口調用鏈信息后,進行解析、排序及降噪處理,生成特征md5值。
11、進一步的,所述組成接口特征庫,將客戶端接口請求的接口信息、調用鏈信息及對應的特征md5值作為一條數據項,組成接口特征庫。
12、進一步的,所述獲取已測試的接口用例的調用鏈信息,是利用接口自動化測試平臺運行編寫的接口用例,采集運行后接口用例的調用鏈信息。
13、進一步的,所述從接口特征庫中篩選出用例特征表未覆蓋到的接口特征,為篩選出來的接口特征構建對應的入參組合,具體為:
14、將用例特征表中的用例特征與接口特征庫中的接口特征進行逐項比較,篩選出特征md5值不相等的接口特征對應的數據項;
15、從所述數據項中得到客戶端接口請求的接口信息,基于接口信息中的接口請求url、接口入參信息,構建待測接口對應的入參組合。
16、根據一些實施例,本公開采用如下技術方案:
17、一種基于接口特征的接口用例生成系統,包括:
18、接口特征生成模塊,被配置為:收集待測業(yè)務系統中各個接口的調用鏈信息,并基于調用鏈信息生成接口特征,組成接口特征庫;
19、用例特征生成模塊,被配置為:獲取已測試的接口用例的調用鏈信息,生成用例特征表;
20、接口用例生成模塊,被配置為:從接口特征庫中篩選出用例特征表未覆蓋到的接口特征,為篩選出來的接口特征構建對應的入參組合,生成新的接口用例。
21、根據一些實施例,本公開采用如下技術方案:
22、一種計算機程序產品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現所述的一種基于接口特征的接口用例生成方法。
23、根據一些實施例,本公開采用如下技術方案:
24、一種非暫態(tài)計算機可讀存儲介質,所述非暫態(tài)計算機可讀存儲介質用于存儲計算機指令,所述計算機指令被處理器執(zhí)行時,實現所述的一種基于接口特征的接口用例生成方法。
25、根據一些實施例,本公開采用如下技術方案:
26、一種電子設備,包括:處理器、存儲器以及計算機程序;其中,處理器與存儲器連接,計算機程序被存儲在存儲器中,當電子設備運行時,所述處理器執(zhí)行所述存儲器存儲的計算機程序,以使電子設備執(zhí)行實現所述的一種基于接口特征的接口用例生成方法。
27、與現有技術相比,本公開的有益效果為:
28、本公開的一種基于接口特征的接口用例生成方法,通過讀取性能監(jiān)控平臺中存儲的接口請求調用鏈,生成并存儲接口特征,維護接口特征庫。測試人員運行接口用例時,提取接口的用例特征并與接口特征庫對比,發(fā)現用例中不存在的特征,并將相關入參推薦給測試人員,引導其新增接口用例,從而提高代碼覆蓋率。
1.一種基于接口特征的接口用例生成方法,其特征在于,包括:
2.如權利要求1所述的一種基于接口特征的接口用例生成方法,其特征在于,所述收集待測業(yè)務系統中各個接口的調用鏈信息,具體為:
3.如權利要求1所述的一種基于接口特征的接口用例生成方法,其特征在于,所述生成接口特征,是特征庫引擎讀取接口調用鏈信息后,進行解析、排序及降噪處理,生成特征md5值。
4.如權利要求3所述的一種基于接口特征的接口用例生成方法,其特征在于,所述組成接口特征庫,將客戶端接口請求的接口信息、調用鏈信息及對應的特征md5值作為一條數據項,組成接口特征庫。
5.如權利要求1所述的一種基于接口特征的接口用例生成方法,其特征在于,所述獲取已測試的接口用例的調用鏈信息,是利用接口自動化測試平臺運行編寫的接口用例,采集運行后接口用例的調用鏈信息。
6.如權利要求1所述的一種基于接口特征的接口用例生成方法,其特征在于,所述從接口特征庫中篩選出用例特征表未覆蓋到的接口特征,為篩選出來的接口特征構建對應的入參組合,具體為:
7.一種基于接口特征的接口用例生成系統,其特征在于,包括:
8.一種計算機程序產品,包括計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現權利要求1-6任一項所述的一種基于接口特征的接口用例生成方法。
9.一種非暫態(tài)計算機可讀存儲介質,其特征在于,所述非暫態(tài)計算機可讀存儲介質用于存儲計算機指令,所述計算機指令被處理器執(zhí)行時,實現如權利要求1-6任一項所述的一種基于接口特征的接口用例生成方法。
10.一種電子設備,其特征在于,包括:處理器、存儲器以及計算機程序;其中,處理器與存儲器連接,計算機程序被存儲在存儲器中,當電子設備運行時,所述處理器執(zhí)行所述存儲器存儲的計算機程序,以使電子設備執(zhí)行實現如權利要求1-6任一項所述的一種基于接口特征的接口用例生成方法。