加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • Part 01●  什么是JSON Schema? ●
    • Part 02●  JSON Schema常见关键字及说明 ●
    • Part 03●  JSON Schema在接口测试中的应用 ●
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

五分钟技术趣谈 | JsonSchema在接口测试中的应用

08/23 10:40
3022
阅读需 7 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

作者:金剑超,单位:中国移动智慧家庭运营中心

在现代软件开发中,接口测试在现代软件开发中扮演着至关重要的角色,它确保了不同系统之间的数据传递和交互的准确性和一致性,Jmeter和Postman等测试工具也已经广泛应用于项目中。然而,在实际的测试过程中,我们通常只对接口的返回码和关键字段进行校验,而忽略了对数据的完整性、类型、格式等方面的验证,存在潜在的隐患。为了提高测试的全面性和准确性,我们需要引入JSON Schema这一强大的工具来进行接口测试。

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等。

参考文献

[1] JSON Schema: A Media Type for Describing JSON Documents[EB/OL].[2023-06-28] https://json-schema.org/draft/2020-12/json-schema-core.html.

[2] JSON Schema Validation: A Vocabulary for Structural Validation of JSON[EB/OL].[2023-06-28]http://json-schema.org/draft/2020-12/json-schema-validation.html.

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
KSZ9031RNXCC-TR 1 Microchip Technology Inc IC TXRX ETHERNET 48QFN

ECAD模型

下载ECAD模型
$2.81 查看
KSZ8999I 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP208

ECAD模型

下载ECAD模型
$31.28 查看
KSZ8873RLL 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP64

ECAD模型

下载ECAD模型
$5.61 查看

相关推荐

电子产业图谱