為什么要做接口測試


很多同學反饋現在面試的時候都會問到為什么要做接口測試以及如何做接口測試的問題,那么我們就稍微來科普一下。

本文討論的接口均是服務級的接口,不是代碼級

接口是什么

在討論為什么要做接口測試之前,我們可以先稍微了解一下接口是什么?

接口可以很不准確的理解成是與資源打交道,這個資源可能是本系統的,也可能是其他系統的。

舉個例子,假如我們在開發1個bug管理系統,該系統需要拿到公司的所有開發和測試人員的信息,這樣開發和測試人員不用注冊都可以登錄進去了,這應該很好理解。

那么這些人員的信息儲存在哪里呢?一般存儲在hr系統里。現在的需求更加明確了,我們要到hr系統中去拿到人員信息,獲取hr系統中的人員資源。

怎么拿呢?很多種方式,可以直接把hr系統的數據庫拷貝一份放到bug管理系統里,不過這樣不好,因為數據的同步會有點麻煩;還可以直接連hr系統的數據庫去查,這樣也不太好,這樣我們就需要了解hr系統的數據存儲結構和邏輯,一旦hr系統的數據字段發生改變,bug管理系統也要去該,以便同步。

比較好的做法是,hr系統暴露一些接口,通過這些接口去獲取人員信息資源,這樣bug系統就不需要關心hr系統的數據存儲實現了。

這些接口可能是這樣的:

  • 登錄的接口,提供人員的用戶名和密碼,去hr系統中判斷該人員是否存在,如果存在驗證用戶名和密碼,如果驗證通過就返回1個token,該token就是這個人員的通行證,通過token可以登錄到bug管理系統中去;
  • 獲取人員信息的接口,返回該人員的職位:測試還是開發,以及用戶名,昵稱等信息;

綜上:接口可以理解成是不同系統或模塊之間資源交流方式;

接口測試實際上是黑盒測試

作為黑盒測試,基本的測試思路是通過輸入和輸出判斷被測系統或者對象的邏輯。

獲取人員的信息,我需要把人員的用戶名傳給hr系統接口,這樣hr系統的接口會返回給我用戶的一些更加具體的信息。這里的輸入是用戶名,輸出是用戶的詳細信息。

為什么要做接口測試

既然是接口獲取和操作資源的方式,而大部分系統和產品中,資源一般都是產品的核心,比如微信核心資源就是通訊錄關系鏈和聊天記錄等,因此資源是必測的。

另外接口中大部分的內容是數據,通過數據的對比我們能推測到系統和產品的邏輯,測接口就是測邏輯。

最后接口中的返回相對單純,不像web頁面,html代碼中有太多ui的東西,ui最不穩定,變化太快,接口相對穩定一點點,但是里面的干擾信息更少,斷言相對容易很多。

接口測試用例怎么寫

還是3a原則,這個我以前的回答里有。

  • A: arrange 初始化測試數據,就是造數據,這里的數據有我們輸入的數據,也有目標接口所涉及的資源,比如hr系統中的用戶信息,我們必須先有幾條人員的詳細信息才能去測獲取人員信息的接口(當然只是正常的流程,我們有時候還需要清掉數據以便測試資源為空的情況);

  • A: act 調用接口,傳入輸入數據;

  • A: assert 斷言, 對返回的資源信息進行斷言,比如獲取用戶信息的接口返回了用戶信息之后,我們要判斷返回的用戶是不是我們想要的那個用戶,我們獲取的是李雷的信息,接口如果返回韓梅梅,那么接口的邏輯就是不對的;

接口測試筆試題

測試教程網接口測試筆試題

有哪些常見的接口

  • 攜程訂飛機票,飛機票的信息一般都是通過各大航空公司的接口拿到的;

  • 淘寶的物流信息,一般淘寶的物流信息都是通過各個物流公司的接口拿到的;

  • 第三方微博客戶端,個人用戶的微博等信息都是通過微博的接口拿到的;

常見的接口測試工具

  • postman: 推薦。基本功能免費。最簡單的基於http接口的調試和測試工具;
  • jmeter:后置處理器配合斷言基本上可以滿足接口測試需求,就是測試報告要做二次開發
  • 自己擼代碼:推薦。配合類似xunit測試框架,基本可以滿足一切需求;零基礎實現python接口自動化視頻教程,一起擼代碼吧
  • soapui: 收費的;
  • insomnia:強力推薦。postman的弱化版,基本功能免費,重要的是工具代碼開源,可以自己改;
  • paw: 強力推薦。mac上最強,淘寶買個授權好像就百把塊錢;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM