1、什麼是接口?
接口是連接配接前台和背景的橋梁,前台通過接口調用後端已完成的功能,而無需關注内部的實作細節。借助于接口,可以實作前背景分離,各自完成開發工作後,進行聯調,提高工作效率。
2、接口的分類?
GET,POST,PUT,DELETE
3、接口的差別?
GET與POST的差別
答:GET的請求資料是在URL上,POST的請求資料是通過FROM表單。安全性:POST接口的比GET接口更安全。
PUT和DELETE的差別
答:PUT用于更新和建立資源;DELETE用于删除資源。
4、接口測試流程?
答:需求溝通》》制定測試方案》》設計測試用例》》準備測試環境》》執行測試用例》》缺陷跟蹤與回歸測試》》上線
5、為什麼要設計測試用例?
答:理清測試思路,避免漏測;
提高測試效率;
跟進測試進度;
告訴上司這件事情你做過(也可以避免出了問題後扯皮);
6、如何設計接口測試用例?
答:主要從功能,業務邏輯,安全,異常,接口文檔等方面入手。
6.1、功能
接口的功能是否實作,比如調用建立叢集接口能正常建立叢集。
接口的實作是否與接口文檔一緻。比如接口的參數與文檔中描述的完全一緻。
6.2、業務邏輯
接口的調用是否符合業務邏輯。比如支付的時候,需要上遊提供訂單号;建立叢集快照的時候,要校驗叢集的狀态是否可用。
6.3、異常場景
主要分為參數異常和資料異常
下面以一個簡單的登入接口為例,正常的請求如下

關鍵字異常:
a.請求URL或body中包含Python JAVA等語言的關鍵字。
b.參數為空,比如下圖中的參數usernam為空:
c.多參數或少參數:
多參數,請求body中多了參數loginmode
請求居然處理成功了,可見服務端并沒有做校驗。可以給開發同學提單了。
少參數,删除username參數:
背景傳回錯誤資訊,這種情況是正常的。
d.參數不正确
比如我們把username改成userName
背景給出了錯誤的提示資訊,正常。
資料異常:
a.資料長度
這種情況,背景需要校驗長度,而不是直接進行查詢。
b.資料為空
c.資料不正确
6.3、安全
主要是header,cookie,唯一識别碼等。
比如我想建立一個叢集,那我是不是要先登入呢。在接口測試的時候可以使用錯誤的token,或已過期的Token下發建立叢集的請求并觀察服務端的響應。
建立叢集,是不是隻要登入了就能建立呢?答案顯然不是的,有的使用者隻能檢視的權限但無建立權限。那我們就可以使用隻有檢視權限的使用者擷取Token後再去下發建立叢集的請求,看看結果如何。
關于登入,使用者的密碼必須要加密後才能傳輸,否則也是不安全的。可以使用抓包工具進行檢視。
還有如果因密碼錯誤導緻的登入失敗,背景的傳回的錯誤資訊是:密碼不正确。這會降低暴力破解的難度,不安全。正确的提示資訊應該是:使用者名或者密碼不正确。
6.4、接口文檔
接口的實作要和接口文檔完全保持一緻,友善前台或其他子系統調用。比如接口調用的使用的關鍵字是username,文檔中寫的确實usernmae,這是肯定不行的。
接口的傳回資訊要清晰明确。
7、接口測試工具的選擇
postman:是谷歌浏覽器的一款插件,非常強大好用。
Fiddler:可以抓取接口資訊,也可以進行接口測試,自動回複,mock等,很強大。
假如在接口文檔還未完成的情況讓測試人員去做接口測試,這種情況下就可以使用Fiddler工具抓取接口資訊再進行測試。無需等接口文檔完成後。
8、如何提供接口測試的效率?
假如上司讓你測試100個接口,你加班加點測試完成後,終于松了一口氣。過幾天,項目上線了,上司告訴你再去把接口回歸測試一遍,這個時候你可能就比較頭大了。有沒有好的解決方案呢?答案就是API自動化