學習筆記之 接口測試

 

接口:數據交互的入口和出口,是一套規範一套標準。

      硬件,如USB,電源接口等。

      軟件,前後端開發時共同參考遵守的一套數據交互的標準規範。用接口可以省去大量的溝通成本,提高效率。一般架構師制定(API文檔)。

 

接口測試:測試後端實現是否符合接口規範(不是測試接口本身)。

實現流程:模擬客戶向服務器發送數據,然後查看響應

要素1: 定位服務器資源(通過 URL 實現: http://www.baidu.com | http://127.0.0.1:8000/資源路徑)

要素2: 模擬用戶提交數據

要素3:查看響應的結果是否符合預期

 

HTTP請求方法

  • GET(SELECT):從服務器取出資源(一項或多項)。
  • POST(CREATE):在服務器新建一個資源。
  • PUT(UPDATE):在服務器更新資源(客戶端提供改變後的完整資源)。
  • DELETE(DELETE):從服務器刪除資源。

RESTful 風格是約束接口操作的四種操作以及三個要素

**增:**

​    要素1:  URL +  POST

​    要素2: 多個數據 ------> 方式1: 鍵=值&鍵=值             方式2: JSON 格式

​    要素3: 200 | 201 +  添加的記錄

**刪:**

​    要素1: URL +  GET|DELETE

​    要素2:  方式1: 鍵=值&鍵=值

​    要素3: 200|204 + 無

**改:**

​    要素1:URL + POST|PUT(更合適)

​    要素2: ------> 方式1: 鍵=值&鍵=值             方式2: JSON 格式

​    要素3:200 | 201 + 修改後那條記錄

**查:**

​    要素1: URL + GET

​    要素2:常用方式1 URL?鍵=值&鍵=值....

​    要素3:200 + 一條或多條記錄
 

狀態碼:

序號 狀態碼 動詞 說明
01 200 OK [GET] 服務器成功返回用戶請求的數據,該操作是冪等的(Idempotent)冪等:無論執行操作多少次,結果都會執行1次結果相同
02 201 CREATED [POST/PUT/PATCH] 用戶新建或修改數據成功
03 202 Accepted [*] 表示一個請求已經進入後臺排隊(異步任務)
04 204 NO CONTENT [DELETE] 用戶刪除數據成功
05 400 INVALID REQUEST [POST/PUT/PATCH] 用戶發出的請求有錯誤,服務器沒有進行新建或修改數據的操作,該操作是冪等的
06 401 Unauthorized [*] 表示用戶沒有權限(令牌、用戶名、密碼錯誤)
07 403 Forbidden [*] 表示用戶得到授權(與401錯誤相對),但是訪問是被禁止的
08 404 NOT FOUND [*] 用戶發出的請求針對的是不存在的記錄,服務器沒有進行操作,該操作是冪等的
09 406 Not Acceptable [GET] 用戶請求的格式不可得(比如用戶請求JSON格式,但是隻有XML格式)
10 410 Gone [GET] 用戶請求的資源被永久刪除,且不會再得到的
11 422 Unprocesable entity [POST/PUT/PATCH] 當創建一個對象時,發生一個驗證錯誤
12 500 INTERNAL SERVER ERROR [*] 服務器發生錯誤,用戶將無法判斷髮出的請求是否成功**

 

對結果進行判斷

序號 方法 預期結果
01 GET collection:代碼:200;數據:返回資源對象的列表(數組)
02 GET collection/resource:代碼:200;數據:返回單個資源對象
03 POST collection:代碼:200/201;數據:返回新生成的資源對象
04 PUT collection/resource:代碼:200/201;數據:返回完整的資源對象
05 DELETE collection/resource:代碼:204;數據:返回爲空

 

新增數據時,數據是 JSON 格式的,必須設置 瀏覽器的 http 請求頭,不然會當成普通文本處理

​      Content-Type   applicaton/json;charset=utf-8 (記住)

​      Content-Type :  提交的內容類型 

​      application/json : 數據類型是 JSON 格式 | 大類型/小類型 img/jpg  img/png .....

​      charset=utf-8  :  設置編碼集,utf-8 支持世界所有字符
 

JSON:是一種數據載體。

JSON 傳輸數據效率更高,所以部分場景下使用 JSON 替換 html 和 XML_(ajax)

但是 JSON 語法描述性不及 標籤語言,所以部分場景還得使用 html 和 xml。如果傳遞的是少量數據的話,可能使用 JSON。

語法:

格式1(JSON對象):{"鍵1":"值1","鍵2":"值2".....}    

格式2(JSON數組):[值1,值2,值3.....]

格式複合: {"name":"huluwa","age":"8","aihao":["救爺爺",“吐火”,"吐水"]}

​         [{"name":"huluwa","age":"8"},{"name":"aotuman","age":"10"}......]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章