?導讀:在所有的開發測驗中,介面測驗是必不可少的一項,有效且覆寫完整的介面測驗,不僅能保障新功能的開發質量,還能讓開發在修改功能邏輯的時候有回歸的能力,同時也是能優雅地進行重構的前提,撰寫介面測驗要遵守哪些原則?測驗代碼的結構應該是什么樣的?介面測驗有哪些實踐技巧?本文分享作者在介面測驗上的實踐總結,
測驗工程師是一個高技術含量的崗位,但現在不少人誤以為測驗工程師就是“點工”,拿到軟體“點點點”,就可以完成測驗了,沒啥技術含量,而一些測驗工程師錯誤的作業方法也滋長了這種誤解,
1、什么是介面測驗
介面測驗是測驗系統組件間介面的一種測驗,介面測驗主要用于檢測外部系統與系統之間以及內部各個子系統之間的互動點,測驗的重點是要檢查資料的交換,傳遞和控制管理程序,以及系統間的相互邏輯依賴關系等,
2、為什么要做介面測驗
a)互聯網的快速發展,公司內部系統或與外部系統的關聯越來越多,一個業務流程關聯多個后端系統,它們的關聯都是基于介面來實作,介面測驗可以將復雜的系統關聯進行簡化,只要做好每個介面的測驗就能夠較好的保證系統質量,
b)單個系統的變更,是否會影響到關聯業務系統,比較難用常規的測驗方面來覆寫相關的應用系統(例如使用此介面的外部 系統有N個,不可能每個做功能兼容性測驗),但可以通過對介面功能的覆寫來驗證是否影響它人對介面的呼叫,
c)介面功能比較單一,能夠比較好的進行測驗覆寫,也相對容易實作自動化持續集成,,可以減少人工回歸成本與時間,縮短測驗周期,
d)介面相對于界面功能,會更底層一些,測驗覆寫會更容易(如業務在呼叫介面時做了判斷,當不滿足條件時鏈接就不顯示,此時從界面無法測驗相關功能是否做好判斷,通過介面就比較容易)
3、介面測驗的范圍
a)業務功能(包括正常、例外場景是否實作)
b)業務規則(覆寫度是否全面)
c)引數驗證(邊界、業務規則是否達到要求)
d)例外場景(重復提交、并發提交、事務中斷、多機環境、大資料量測驗)
e)性能測驗(回應時間、吞吐量、并發數、資源要求)
f)安全測驗(權限驗證、SQL注入等)
現在我也找了很多測驗的朋友,做了一個技術分享的交流群,共享了很多我們收集的視頻教程和技術檔案,如果你不想再體驗自學時找不到資源,沒人解答問題,堅持幾天便放棄的感受,可以加入我們一起交流,而且還有很多在自動化,性能方面有一定建樹的技術大牛,分享他們的經驗,還會分享很多直播講座和技術沙龍,可以免費學習!劃重點!開源的!!!?qq群號:110685036
4、介面測驗的重點
a)檢查介面回傳的資料是否與預期結果一致,
b)檢查介面的容錯性,假如傳遞資料的型別錯誤時是否可以處理,
c)介面引數的邊界值,例如,傳遞的引數足夠大或為負數時,介面是否可以正常處理,
d)介面的性能,http請求介面大多與后端執行的SQL陳述句性能、演算法等比較相關,
e)介面的安全性,外部呼叫的介面尤為重要,
5、測驗原則
基礎原則:
?自動化:介面測驗是非互動式的自動化執行,不需要人參與,
?獨立性:介面測驗之間不應該相互依賴,
?可重復:介面測驗可重復執行,不受環境影響,
?介面測驗遵守BCDE原則,保障介面交付質量,
- Border:邊界測驗,
- Correct:正確的輸入,正確的預期輸出,
- Design:按照需求和設計檔案撰寫測驗邏輯,
- Error:錯誤輸入,預期輸出,
?資料準備:資料準備通過系統服務進行,不能通過直接插入db方式,
?可測性:對于不可測的代碼需要進行重構成合理的結構,
?覆寫性:介面測驗需要覆寫所有UC,同時代碼覆寫率和分支覆寫率應達到一定標準,新增代碼必須被覆寫,
?持續性:如果代碼修改導致已有介面測驗執行失敗,必須修復代碼問題或者測驗代碼邏輯,
?時間要求:介面測驗應該在專案發布之前完成,不應放到專案發布之后補充,
以上的基本原則應適用于所有層的自動化測驗用例,在撰寫介面測驗時,除了上面這些原則,還有其他原則需要遵守,先看一張圖:
從系統角度來分析入口呼叫,以HSF服務為例:
?外圍系統呼叫由我們系統提供的服務,
?系統執行了一堆代碼邏輯,其中包含有分支邏輯,
?系統執行程序中依賴外部HSF服務,進行了呼叫,并得到了回傳值,
?系統執行程序中依賴DB查詢或者落地了資料,依賴快取查詢或者落地了資料,
?系統執行程序中對外發送了訊息,
?給上游系統回傳HSF執行結果,
有效介面測驗的關鍵原則是要覆寫所有入口,mock所有依賴,校驗執行程序中所留下的痕跡,總結如下:
?入口覆寫:介面測驗用例必須覆寫HSF服務入口、訊息入口、定時任務入口,
?依賴mock:在基本原則中,有可重復這個原則,即介面測驗不能受環境依賴,需要mock掉對外依賴,但對于db依賴,不建議完全mock掉,一方面mock成本高,另外可能覆寫不到sql和表約束邏輯,
?校驗完整:有效的介面測驗,應該具備完整的校驗,沒有校驗的介面測驗是沒有意義的,只要執行程序中,留下的痕跡對業務有影響,都要進行完整校驗,方能保障介面測驗的有效性、
- HSF介面回傳值校驗:按照場景和介面約定進行HSF回傳引數校驗,
- DB校驗:校驗落地資料的正確性,
- 快取校驗:校驗存入快取中資料的正確性,
- HSF依賴入參校驗:通過mock工具獲得依賴HSF呼叫的入參,進行入參校驗,
- 訊息校驗:通過mock工具獲得發送的訊息物件,進行訊息體校驗,
6、介面測驗常用工具
1、JMeter
JMeter是Apache組織開發的基于Java的壓力測驗工具,能夠將請求轉換為腳本來實作,并允許使用正則運算式創建斷言來對請求回傳結果進行判斷,具備介面測驗功能和性能的能力,
2、Robot Framework
Robot Framework是一款Python撰寫的功能自動化測驗框架,具備良好的可擴展性,支持關鍵字驅動,可以同時測驗多種型別的客戶端或者介面,可以進行分布式測驗執行,常用于輪次很多的驗收測驗和驗收測驗驅動開發(ATDD),
3、SOAPUI
SoapUI是一個完整的自動化測驗解決方案,支持SOAP和REST的Web服務,JMS企業訊息層,資料庫,豐富的互聯網應用,等等,而在SoapUI,你從它的直觀和強大的用戶界面這一切,對于自動化程度較高,SoapUI還提供了命令列工具,讓您運行的功能/負載測驗和幾乎所有的任務調度程式,或作為您的構建程序中的一個組成部分MockServices集,
4、PostMan
Postman是一款功能強大的網頁除錯與發送網頁HTTP請求的Chrome插件,具備Fiddler、httpwatch之類的工具除錯請求的功能,同時具備介面管理功能,官網提升腳本保存同步功能,支持介面匯入匯出,
另特意為各位同學準備了一份13G的超實用干貨自學資源,涉及的內容非常全面,涵蓋功能測驗、Linux資料庫、Python編程語言,介面測驗、UI自動化測驗、性能測驗......包括軟體學習路線圖,50多天的上課視頻、16個突擊實戰專案(滿足你對測驗經驗的需求),80余個軟體測驗用軟體,37份測驗檔案,70個軟體測驗相關問題,40篇測驗經驗級文章,上千份測驗真題分享,還有2023軟體測驗面試寶典,還有軟體測驗求職的各類精選簡歷,希望對大家有所幫助…這些都在我的軟體測驗學習交流群里:110685036
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/551800.html
標籤:其他
上一篇:8年測驗開發,寫給1-3年功能測驗的幾點建議,滿滿硬貨指導
下一篇:返回列表
