介面測試入門篇

秦無殤發表於2019-03-15

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自動化

推薦使用Python+unittest+requests完成測試頻率高的介面自動化,如果有更成熟介面測試框架就更好了。一次編寫,可多次使用。

 

 

 

 

 

    

相關文章