淺析接口測試

看到這篇文章的同學們一定在各種地方看到過“接口測試”這個詞,那麼到底接口測試是測什麼?每個人可能都有自己的答案;之前跟一個同爲測試的朋友聊天,內容是他的一次面試經歷,面試官問他是否做過接口測試,他給了否定的答案,最後offer的評級沒有給到他的預期;當時我在想,如果是我,會怎樣回答呢?

先跟大家分享下我對接口測試的理解

接口測試是一種測試類型,又是一種測試方法,它是很多個領域測試工作的一部分,同時它又可以通過不同方式來執行;
功能測試

功能測試即我們常說的黑盒測試,傳統意義上的黑盒測試即驗證開發出來的產品是否滿足產品提出的產品需求說明書,而接口實際上也是產品需求的一部分; 
例如: 
產品需求:客戶端輸入一個詞,點擊按鈕,即按時間倒敘展示這個詞相關的新聞; 
功能實現:客戶端將用戶輸入的詞拼成http請求,發往服務端接口,接口查找了這個詞有關的新聞,並且按時間倒敘拼接成json,回覆給客戶端,客戶端按順序展示。 
這個例子裏,中心需求 ≈ 接口功能

安全測試

經常聽說的安全測試很大程度上也屬於接口測試的一部分,因爲接口相當於內部服務器和外界的橋樑,如果橋上沒有警衛,那任何人都可以進到內部服務器,這裏說的警衛其實就是接口的安全校驗; 
舉個已經爛了的例子: 
接口功能:接收用戶輸入的詞,到數據庫查詢這個詞的解釋; 
這裏涉及到將用戶輸入的詞拼成sql的過程,接口要做的不僅僅只拼接sql並執行,更重要的是過濾用戶輸入的異常字符串;

自動化測試

傳統意義上的自動化是客戶端通過框架自動執行黑盒case的過程,但接口測試同樣可以自動化,看看下面的例子: 
測試需求:服務端實現接收客戶端輸入的各種詞語、句子、符號、單詞等等信息,查詢判斷輸入的類型、解釋語句、或者判斷這是個非法查詢,客戶端依據服務端返回的json展示結果。 
這個需求需要非常多的輸入case,比如各類短語、字符、全角、半角、空格、繁體、簡體、韓語、日語等等,然而這些case有一些共同的檢查點,比如:返回值要是json格式,一定要有類型字段、是否合法的bool值、如果合法的話要有解釋語句內容;那麼這個需求,我們就可以通過自動化來驗證需求;我們只需要寫好入參的case就好了;

性能測試

一般來說,性能測試即服務端接口的性能測試,這也是一個需求能否正常上線的重要關注點。 
這裏說的接口性能測試最重要的是下面兩部分: 
1、服務端能承受的最大壓力; 
2、正常負載時的穩定性;

單元測試

這個理由很簡單,服務端接口也是碼代碼,也有不同的模塊、類、函數,可以通過單測來保證那些服務端接口代碼的底層函數的功能正確性,例如:解析json的函數、處理請求參數的函數、連接db的函數等等;

現在我們回過頭想想上面那個面試官的問題:你做過接口測試嗎?答案應該能講好久。。。




文章來源:https://www.testwo.com/article/886
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章