天天看點

3分鐘帶你入門接口自動化測試!

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、異常場景

主要分為參數異常和資料異常

下面以一個簡單的登入接口為例,正常的請求如下

3分鐘帶你入門接口自動化測試!

關鍵字異常:

a.請求URL或body中包含Python JAVA等語言的關鍵字。

b.參數為空,比如下圖中的參數usernam為空:

3分鐘帶你入門接口自動化測試!

c.多參數或少參數:

多參數,請求body中多了參數loginmode

3分鐘帶你入門接口自動化測試!

請求居然處理成功了,可見服務端并沒有做校驗。可以給開發同學提單了。

少參數,删除username參數:

3分鐘帶你入門接口自動化測試!

背景傳回錯誤資訊,這種情況是正常的。

d.參數不正确

比如我們把username改成userName

3分鐘帶你入門接口自動化測試!

背景給出了錯誤的提示資訊,正常。

資料異常:

a.資料長度

3分鐘帶你入門接口自動化測試!

這種情況,背景需要校驗長度,而不是直接進行查詢。

b.資料為空

3分鐘帶你入門接口自動化測試!

c.資料不正确

3分鐘帶你入門接口自動化測試!

6.3、安全

主要是header,cookie,唯一識别碼等。

比如我想建立一個叢集,那我是不是要先登入呢。在接口測試的時候可以使用錯誤的token,或已過期的Token下發建立叢集的請求并觀察服務端的響應。

建立叢集,是不是隻要登入了就能建立呢?答案顯然不是的,有的使用者隻能檢視的權限但無建立權限。那我們就可以使用隻有檢視權限的使用者擷取Token後再去下發建立叢集的請求,看看結果如何。

關于登入,使用者的密碼必須要加密後才能傳輸,否則也是不安全的。可以使用抓包工具進行檢視。

還有如果因密碼錯誤導緻的登入失敗,背景的傳回的錯誤資訊是:密碼不正确。這會降低暴力破解的難度,不安全。正确的提示資訊應該是:使用者名或者密碼不正确。

6.4、接口文檔

接口的實作要和接口文檔完全保持一緻,友善前台或其他子系統調用。比如接口調用的使用的關鍵字是username,文檔中寫的确實usernmae,這是肯定不行的。

接口的傳回資訊要清晰明确。

7、接口測試工具的選擇

postman:是谷歌浏覽器的一款插件,非常強大好用。

Fiddler:可以抓取接口資訊,也可以進行接口測試,自動回複,mock等,很強大。

假如在接口文檔還未完成的情況讓測試人員去做接口測試,這種情況下就可以使用Fiddler工具抓取接口資訊再進行測試。無需等接口文檔完成後。

8、如何提供接口測試的效率?

假如上司讓你測試100個接口,你加班加點測試完成後,終于松了一口氣。過幾天,項目上線了,上司告訴你再去把接口回歸測試一遍,這個時候你可能就比較頭大了。有沒有好的解決方案呢?答案就是API自動化