Ⅰ 介面自動化測試
介面 :外部系統與本系統之間以及系統內部的各個子系統間,以約定標准提供的服務,包括對外提供的介面/對內提供的介面。
在這塊我們舉一個比較生活化的例子,我們平常使用的筆記本,在筆記本的兩端有很多小插口,最常見的就是USB插口,我們可以把滑鼠連接在USB插口上,也可以把鍵盤、U盤連接在USB插口上,為什麼同一個USB介面可以連接這么多設備呢,其實這個介面,他就有一個統一對外的連接標准。
在我們開發當中,也有一個對外暴露的介面,因為他們服務的協議都是統一的,最常見的就是hhtp協議,我們規定好一種格式,讓客戶端來調用我們。
這裡面鍵盤滑鼠屬於調用方,插到筆記本的USB上,就可以連接設備,就可以進行操作了。對外暴露的一個統一的一個規范,這樣去理解介面,更形象一些。
在了解完什麼是介面之後,我們來說一下什麼是介面測試。
介面測試 測試系統組件間介面的一種測試。介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等,保證對外提供介面的正確性和健壯性。
我們在具體測試過程中,我們不用關心介面調用方和接收方的實現邏輯,我們只需要知道傳入什麼數據,返回什麼的結果是否達到我們的預期。介面測試其實也是黑盒測試,他與UI測試的區別就是沒有界面交互,是不可視化的。
測試前置 :我們不能等到整個系統全部開發完成才能進行測試,我們可以通過調用介面來進行測試,把問題攔截在前期,降低問題修復成本。
Bug更容易定位 :因為我們按介面進行測試,出現問題後在被測介面中排查就可以了,它比系統集成之後,發現問題更容易定位,系統集成之後有各種模塊的調用,出現bug之後再排查,排查的鏈路非常的長。另外從機制上更接近出問題的地方更容易命中問題。
前後端分離結構 :現在很多系統都採用前後端分離架構,各服務之間更多的是通過介面來實現信息互通,對介面進行直接測試,可以更全面的覆蓋各類測試場景。
自動化測試落地性價比高 :比UI自動化測試更穩定,我們上面已經說了UI層的元素時常發生變化,有時改一個簡單的元素,都有可能導致我們的自動化測試走不下去,寫一套自動化測試腳本比較容易的,但是維護起來,會耗費很大的時間精力,相對來說,介面就比較穩定,一個項目沒有大的改造,入參和出參就是固定的,變化的概率比較小,這樣維護起來也比較方便。
減少安全隱患 :比如我們在平常的測試過程中,測試用戶名和密碼,密碼格式要求不能輸入特殊字元,前端做了校驗,而後端沒有處理,這樣我們只測試頁面,這條case就默認通過了,但一些黑客可能通過抓包的方式進行登錄,這樣安全隱患就比較大了。我們對介面進行安全測試,可以避免安全隱患。
藉助工具 : Postman、Jmeter、jsf平台、jsf測試工具、easytest
編寫測試腳本 :Java+TestNG
請關注下一篇如何使用Java+TestNG進行介面自動化測試