五分鐘技術趣談 | JsonSchema在接口測試中的應用
Part 01
什么是JSON Schema?
JSON Schema是一種用于描述和驗證JSON數據結構的規范。它提供了一種結構化的方式來定義JSON數據的期望結構、類型、格式、約束條件等,通過JSON Schema我們可以確保接收到的JSON數據符合預期的規范,并對其進行有效性驗證。
以下是一個簡短的JSON Schema示例:
Part 02
JSON Schema常見關鍵字及說明
JSON Schema提供了一系列關鍵字用于描述和驗證JSON數據的結構和約束條件。以下是一些常見的JSON Schema關鍵字及其說明:
通過使用這些關鍵字,我們可以定義出符合預期的數據結構,以及對數據進行有效性驗證和約束條件的檢查。在接口測試中,合理應用這些關鍵字可以提高測試的準確性和可靠性,確保接口返回的數據符合預期要求。
Part 03
JSON Schema在接口測試中的應用
Postman是一款功能強大且常見的接口測試工具,它提供了許多功能和特性,下面將介紹在Postman中如何應用JSON Schema進行接口測試。
1)定義JSON Schema: 在開始接口測試之前,首先需要定義JSON Schema來描述接口返回數據的結構和約束條件。可以使用任何文本編輯器創建一個JSON文件,并根據接口的要求定義JSON Schema。
上面的這個JSON Schema定義了一個對象,該對象包含三個屬性:age、name和email。每個屬性都有特定的類型和約束條件。
- age 屬性是一個數字類型,且必須大于等于0。
- name 屬性是一個字符串類型。
- email 屬性是一個字符串類型,并且應符合電子郵件的格式。
此外,該JSON Schema使用required關鍵字指定了必填屬性,即age、name和email都是必需的屬性,缺少任何一個將導致驗證失敗。
2)創建請求: 打開Postman并創建一個新的請求,輸入請求的URL、請求方法和其他必要的參數。確保選擇正確的請求方法(GET、POST、PUT等)以及正確的URL。
3)添加測試腳本:在請求中選擇"Tests"選項卡,并在其中添加JavaScript代碼作為測試腳本。測試腳本將用于驗證接口返回的數據是否符合JSON Schema定義。
在這里我們使用pm.response.json()方法獲取接口返回的JSON數據,并將其與預定義的JSON Schema進行比較。使用tv4.validate()方法驗證jsonData是否符合schema定義。如果數據與Schema匹配,斷言將返回true。
4)發送請求和運行測試:現在,可以點擊發送請求并在響應中運行測試腳本。測試腳本將驗證接口返回的數據是否符合JSON Schema定義,并根據結果反饋相應的測試結果。
通過在Postman中使用JSON Schema進行接口測試,我們可以方便地驗證接口返回的數據是否符合預期,驗證接口返回數據的完整性、類型、格式等方面是否正確,有效的保證了數據傳遞和交互的準確性和一致性。
此外,除了日常的接口測試中可以使用JSON Schema外,我們還在自動化測試中使用,各種語言都有開源的第三方JSON Schema校驗庫,例如Go語言的gojsonschema,Python的jsonschema等。