天天看點

大廠資深測試老司機深聊接口測試

什麼是接口

接口測試主要用于外部系統與系統之間以及内部個子系統之間的互動點,定義特定的互動點,再通過這些互動點來通過特殊的規則也就是協定,來進行資料之間的互動。

接口類型

  1. 程式内部的接口
  1. 系統對外的接口

系統對外的接口:比如本系統需要從第三平台擷取資料,第三方平台不友善把資料庫直接共享給我們系統,這樣第三方相關開發人員會封裝相關的擷取資料的方法,友善我們系統進行對接,進而達到共享資料的目的。

程式内部的接口:方法與方法之間,子產品與子產品之間互動和通訊,程式内部抛出的接口,友善其他子產品進行調用,比如:登入子產品,注冊子產品、查詢子產品等等,那麼這些子產品就有互動,它就會抛出一個接口,供内部系統進行調用。

接口協定

大廠資深測試老司機深聊接口測試

接口請求常用六種方式

大廠資深測試老司機深聊接口測試
Get 向指定資源發送請求(請求指定頁面資訊,并傳回主體)
Post 向指定資源送出資料進行處理請求(比如:送出表單,上傳檔案),可能導緻新的資源建立或原有資源的修改
Put 向指定資源位置上傳其最新内容(從用戶端向伺服器傳送的資料代指定文檔的内容)
Head 與伺服器索與get 請求一緻的響應,響應體不會傳回,擷取包含在小消息頭中的原消息(與get請求類似,傳回的響應中沒有具體内容,用于擷取報頭)
Delete 請求伺服器删除request-URL 所标示的資源(請求删除伺服器頁面)
opions 傳回伺服器針對特定資源所支援的HTML請求方法或WEB 伺服器發送測試伺服器功能

常用面試題之Get 和 Post 差別

安全性:

Get 請求無消息體,隻能攜帶少量資料,且不安全

Post 請求有消息體,可以攜帶大量資料,且安全

發送資料方式:

Get 請求資料放在URL 位址中

Post 請求将資料放在消息體body 中

送出資料量:

Get 方式送出的資料最多隻能有1024位元組

Post 方式送出沒有此限制

http 常用響應狀态碼

每一個請求發送出去,都會有一個對應的響應嗎,http本身會有一個狀态碼,用來辨別請求是否成功,常用的狀态碼有如下幾種

大廠資深測試老司機深聊接口測試

前後端和測試對應的接口使用

由于現在一款程式的開發實作的前後端分離,前端和後端直接的資料傳輸和互動都是通過接口來進行操作的。

前端:通過後端人員給的接口文檔,來進行Ajax的設計,通過接口向服務發送請求,擷取響應的資料,然後通過傳回的資料進行下一步的頁面跳轉和顯示。

後端:通過編寫接口,為前端提供與伺服器和資料請求互動的通道。編寫對應的接口文檔,需要傳遞的參數,請求協定,參數類型等等。然後生成接口文檔,分享給前端,讓其按照接口文檔編寫對應的Ajax。

測試:可以通過接口文檔,進行接口驗證,檢視後端開發的接口和前端所寫的Ajax是否對應,有沒有出錯的接口,還可通過接口流程測試,知道整個系統之間的接口是否是相對應的,有沒有接口是不對的,或者沒有正常運作。

為什麼要做接口測試

接口其實就是前端頁面或APP等調用與後端做互動用的,是以好多人都會問,我功能測試都測好了,為什麼還要測接口呢?OK,在回答這個問題之前,先舉個栗子:

比如測試使用者注冊功能,規定使用者名為6~20個字元,包含字母(區分大小寫)、數字、下劃線。首先功能測試時肯定會對使用者名規則進行測試時,比如輸入20個字元、輸入特殊字元等,但這些可能隻是在前端做了校驗,後端可能沒做校驗,如果有人通過抓包繞過前端校驗直接發送到後端怎麼辦呢?試想一下,如果使用者名和密碼未在後端做校驗,而有人又繞過前端校驗的話,那使用者名和密碼不就可以随便輸了嗎?如果是登入可能會通過SQL注入等手段來随意登入,甚至可以擷取管理者權限,那這樣不是很恐怖?

是以,接口測試的必要性就展現出來了:

①、可以發現很多在頁面上操作發現不了的bug

②、檢查系統的異常處理能力

③、檢查系統的安全性、穩定性

④、前端随便變,接口測好了,後端不用變

常用接口測試工具

大廠資深測試老司機深聊接口測試

更多大廠幹貨測試内容點選如下位址擷取:

資深測試專家帶你學習Jmeter進階性能測試實戰

資深測試專家帶你學習RobotFramework+Jmeter接口自動化測試

資深測試專家帶你全面學習軟體測試全棧系列

靠譜測試必備Fiddler接口抓包神器使用

繼續閱讀