接口測試01-概念-RESTful 架構風格


 

 

1 接口測試:接口(重點)

1.1 概念(記住)

接口: 不同單元(或模塊)進行數據交互的一個通道,還是一套規范,一套標准。

舉例: USB接口、網線接口、耳機、插座 ...

1.2 作用(理解) == 規范化接口的作用
  • 項目開發中,未采用規范化接口時的缺點

1. 研發標准不統一,團隊磨合難度高
2. 研發周期長
3. 可擴展性差
  • 項目目開發中,采用規范化接口帶來的優點


1. 統一設計標准,更易於團隊磨合
2. 縮短研發周期
3. 擴展性靈活
4. 前后端都可以使用自己熟悉的技術,只需保證最終產出符合規范即可(提高編程效率)
1.3 實現

怎么使用規范化接口?

  1. 編寫一個聲明接口規范的文檔(API 文檔 == Application Program Interface 應用程序編程接口)

  2. 前端和后端在實現時,都按照該文檔的約束編寫各自代碼

 

 

2 接口測試:接口測試(重點)

2.1 概念

接口測試: 測試后端實現是否符合接口規范

因為后端需要使用編程語言編寫業務邏輯,涉及到一些算法實現,易產生 BUG

2.2 作用(了解)
  1. 對應場景1: 提高測試效率

  2. 對應場景2: 更精准的定位 BUG

  3. 對應場景3: 發現程序中的安全隱患

2.3 實現(重點)

流 程: 首先,通過 URL 定位接口資源;然后,提交測試數據;最后,查看響應結果是否符合預期

三要素:

要素1: 怎么定位接口?(查閱API文檔,文檔中有詳細說明)

要素2: 怎么提交測試數據?(提交格式需要查閱 API文檔,需要設計用例)

要素3: 對比響應結果(狀態碼 + 響應體)

2.4 接口測試分類(記住)
  • WEB接口測試(BS架構)

    • 服務器接口測試 === 自實現接口

    • 外部(第三方)接口測試 === 調用第三方的接口(比如: 支付寶支付、微信支付、天氣預報....)

  • 模塊接口測試(CS架構)

 

3 接口測試:環境搭建_項目安裝運行(不重要緊急)

3.1 項目簡介
  1. 學生信息管理系統的功能是收集學生的個人信息,以便向老師提供每個學生在校或畢業生學籍的情況,還可以讓學生用自己的學號去查看自己在校期間的表現。

  2. 該系統中主要有三大模塊實現,分別是:學院模塊、班級模塊與學生模塊,三大模塊分別實現了學院、班級與學生信息增刪改查(CRUD)管理.

  等等等....

3.2 流程(了解)  安裝服務器運行環境....
3.3 數據庫查看:

后期,測試過程中,我們經常需要將接口相應的結果與數據庫中的數據做比對,接下來我們再介紹一下,如何查看項目的數據庫數據。

4 接口測試:環境搭建_插件|工具

POSTman

5 接口測試:RESTful 架構風格

  1. 5.1 概念

RESTful 架構風格: 前輩們根據自身的經驗教訓,總結的一套約束 API 文檔編寫規范的標准

5.2 作用

保證文檔的易讀性

5.3 補充知識:三要素(記住)

前提:

  1. 程序的主要功能點實現: 增刪改查

  2. 每種操作都涉及到三要素

  3. RESTFul 架構風格約束了每種操作的三要素實現

三要素:

  • 要素1: 怎么定位接口資源

    • URL:

      http://www.baidu.com/s

      http://127.0.0.1:8000/api/departments/

      http: 協議 (http、https、ftp、ftps、SMTP、POP3.....)

      127.0.0.1: IP地址(定位被訪問的服務器)

      8000: 端口號(服務器的每一個程序都有一個獨一無二的端口號,可以通過端口號定位被訪問的程序)

      /api/departments/: 資源路徑,可以映射程序中的某個功能點

    • Method:

      GET: 查

      POST: 增

      PUT: 改

      DELETE: 刪

      比較 GET 和 POST 區別?

      • 安全: POST 隱式提交,比 GET 更安全

      • 效率: GET 請求效率更高

      • 功能: POST 功能更強大一些,提交的數據沒有長度限制

  • 要素2: 怎么提交測試數據

    • QueryString = 鍵值對

      格式: 鍵1=值1& 鍵2=值2& 鍵3=值3& 鍵4=值4.....

    • JSON

      對象格式

      {

      ​ "鍵1":"值1",

      ​ "鍵2":"值2",

      ​ "鍵3":"值4",

      ​ ....

      }

      數組格式

      [值1,值2,值3 .....]

    二者比較,JSON 的可描述性更強,且JSON可以使用專門的工具解析:

    • username=huluwa&password=jiuyeye&aihao=tuhuo&aihao=tushui&aihao=yinshen

    • {

      ​ "username":"huluwa",

      ​ "password":"jiuyeye",

      ​ "aihao":["tuhuo","tushui","yinshen"]

      }

  • 要素3: 怎么對比響應結果

    • 關注點1: 狀態碼

      1XX: 杜絕出現,請求正常,但是服務器不給響應

      2XX: 響應正常 200 201 204 ....

      3XX: 重定向 302

      4XX: 瀏覽器異常 404 400 415

      5XX: 服務器異常 500

    • 關注點2: 響應體

      格式1: HTML 源碼

      格式2: JSON 數據

5.4 實現(記住)
操作 要素1 要素2 要素3
URL + POST 鍵值對|JSON 201 + 新增后的數據
URL + DELETE 鍵值對 204 + 無
URL + PUT 鍵值對|JSON 201(200) + 修改后的數據
URL + GET 鍵值對 200 + 多條或單條數據

PS: RESTful 架構是約束API文檔編寫的一套軟性而非硬性的規范

6 接口測試:實戰

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM