介面自動化大牛養成記

weixin_33890499發表於2018-04-11

對於大多數未做過介面測試的同學來說,可能並不清楚介面到底是什麼,甚至你去問很多做過介面測試的同學什麼是介面,他們也說不出個所以然,

大多數人可能知道介面大概是什麼,也知道怎麼測,但是不知道如何用專業的術語去描述出來。

介面的本質:介面就是一個函式,通過將介面部署到web容器(tomcat,jboss,weblogic等),釋出服務後,就可以通過一個url地址去訪問到介面了。

而介面文件裡面描述的介面引數呢其實就是函式的引數,介面的返回資料就是函式的返回值。

即:介面=函式,介面引數=函式引數,介面返回值=函式返回值。

以如下介面專案中的“獲取使用者列表”介面為例:(http://119.23.241.154:8080/futureloan/mvc/api/member/list),

它其實就對應了後臺的一個這樣的一個同名函式:

9001634-0239b48190c603dc.jpg

介面測試跟ui測試的本質區別:

UI測試更專注於ui頁面,而不關注系統內部實現,一個功能模組是否有bug,所有的判斷依據都直接來自於前端頁面反饋,跟我們的預期對比,一樣就測試通過,不一樣就是bug。

而介面不一樣,需要藉助某些客戶端工具模擬前端頁面傳送介面請求,測試人員通過判斷介面返回資料與預期是否一致,對測試人員的技術要求更高。

介面測試到底是在專案哪個階段去做?

介面測試可以在專案的任意階段做,只要介面已經開發出來了,提前介入,就能提前發現問題,不管系統是不是已經將頁面與後臺介面整合了,專案時間充足的前提下都最好對介面進行一輪或者多輪測試,

基於兩點原因:

1)某些請求如果繞過前端直接往介面傳送非法資料,而介面也有相應處理措施,那麼將最大限度的降低了系統的風險;

2)後端控制好了,所有的問題就集中與前端這一塊了。

手工測試介面有哪些工具:

Postman,jmeter,Soapui,Fiddler等主流的工具都能完成。

什麼是介面自動化? 通過程式碼驅動測試而非人工。

為什麼需要做介面自動化? 通過機器來替代人工,解放生產力。

如何做介面自動化? 通過http技術處理介面呼叫。

介面自動化環境如何搭建:

1.建立maven專案,為什麼用maven專案,最重要最直接的原因是希望maven來管理我們們的專案依賴,這樣我們就不需要滿世界的找各種jar包去下載了。

2.整合HttpClient,在maven專案引入HttpClient-4.5.2這個框架的依賴,這個框架提供了一些http技術可以幫助我們們去發起介面呼叫並處理介面返回資料,以下是依賴描述。

org.apache.httpcomponents

httpclient

4.5.2

3.整合testng,利用testng這個測試框架來幫助我們們來更好的管理測試類,以及它提供了豐富的註解,方便我們們去實現多場景測試設計。以下是依賴描述。

org.testng

testng

6.8.8

test

4.至於專案的其他依賴在後面的介面自動化框架實現過程中再給大家補充,本節只為實現一個最簡單的環境和一個介面呼叫案例。

小試牛刀:

通過http技術post一次介面請求,完成對於註冊介面的呼叫,並得到介面返回資料。程式碼如下:

9001634-48fe5e8682e930b4.jpg

總結:以上程式碼是一個簡單的案例,離我們的介面自動化框架還差十萬八千里。後面的篇章將帶大家逐漸去完善這個框架,大家敬請期待。

下一篇專注於以下單介面測試到多介面的過渡以及以下圖中的兩個問題:

9001634-750ab22b70e1514c.jpg

歡迎大家留言,提問,送自動化公開課等視訊哈。覺得不錯就點個贊吧

測試技術分享群:313782132

相關文章