【新夢想幹貨分享】接口自動化測試

一、分層自動化測試

新夢想軟件測試

分層自動化測試是最近曝光度比較高的概念,傳統的自動化測試更關注的是UI層的自動化測試,而分層自動化測試則倡導產品的不同層次都要進行自動化測試。

單元測試:關注代碼的實現邏輯,比如一個if分支或者一個for循環的實現;

服務層測試:關注的代碼所提供的接口是否可靠;

UI層測試:關注的是界面層的測試;

單元測試和服務層測試,可以通過junit、testNG、unittest等一些測試框架來實現自動化測試。

UI層的測試可以藉助selenium、appium模擬頁面操作實現自動化測試。

我們看這個模型爲什麼要設計成金字塔形,而不是長方形或者倒三角形呢,這是爲了表示不同階段投入自動化測試的比例,越往上層,其維護成本越高,尤其是ui層的元素會時常發生變化,所以我們應該把更多的自動化測試放在單元測試和接口測試階段。

在這裏我們不是說不提倡大家做UI測試,而是不應該投入太多精力去做UI層的自動化測試。

什麼是接口

接口:外部系統與本系統之間以及系統內部的各個子系統間,以約定標準提供的服務,包括對外提供的接口/對內提供的接口。

新夢想軟件測試

在這塊我們舉一個比較生活化的例子,我們平常使用的筆記本,在筆記本的兩端有很多小插口,最常見的就是USB插口,我們可以把鼠標連接在USB插口上,也可以把鍵盤、U盤連接在USB插口上,爲什麼同一個USB接口可以連接這麼多設備呢,其實這個接口,他就有一個統一對外的連接標準。

在我們開發當中,也有一個對外暴露的接口,因爲他們服務的協議都是統一的,最常見的就是hhtp協議,我們規定好一種格式,讓客戶端來調用我們。

這裏面鍵盤鼠標屬於調用方,插到筆記本的USB上,就可以連接設備,就可以進行操作了。對外暴露的一個統一的一個規範,這樣去理解接口,更形象一些。

什麼是接口測試

在瞭解完什麼是接口之後,我們來說一下什麼是接口測試。

接口測試測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等,保證對外提供接口的正確性和健壯性。

我們在具體測試過程中,我們不用關心接口調用方和接收方的實現邏輯,我們只需要知道傳入什麼數據,返回什麼的結果是否達到我們的預期。接口測試其實也是黑盒測試,他與UI測試的區別就是沒有界面交互,是不可視化的。

我們爲什麼要做接口測試

測試前置:我們不能等到整個系統全部開發完成才能進行測試,我們可以通過調用接口來進行測試,把問題攔截在前期,降低問題修復成本。

Bug更容易定位:因爲我們按接口進行測試,出現問題後在被測接口中排查就可以了,它比系統集成之後,發現問題更容易定位,系統集成之後有各種模塊的調用,出現bug之後再排查,排查的鏈路非常的長。另外從機制上更接近出問題的地方更容易命中問題。

前後端分離結構:現在很多系統都採用前後端分離架構,各服務之間更多的是通過接口來實現信息互通,對接口進行直接測試,可以更全面的覆蓋各類測試場景。

自動化測試落地性價比高:比UI自動化測試更穩定,我們上面已經說了UI層的元素時常發生變化,有時改一個簡單的元素,都有可能導致我們的自動化測試走不下去,寫一套自動化測試腳本比較容易的,但是維護起來,會耗費很大的時間精力,相對來說,接口就比較穩定,一個項目沒有大的改造,入參和出參就是固定的,變化的概率比較小,這樣維護起來也比較方便。

減少安全隱患:比如我們在平常的測試過程中,測試用戶名和密碼,密碼格式要求不能輸入特殊字符,前端做了校驗,而後端沒有處理,這樣我們只測試頁面,這條case就默認通過了,但一些黑客可能通過抓包的方式進行登錄,這樣安全隱患就比較大了。我們對接口進行安全測試,可以避免安全隱患。

接口測試用例如何設計

新夢想軟件測試

自動化測試如何落地

藉助工具: Postman、Jmeter、jsf平臺、jsf測試工具、easytest

編寫測試腳本:Java+TestNG

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章