JSON 断言是 JMeter 中用于验证 JSON 格式响应的一种断言方式。该断言允许用户指定 JSON 路径表达式并验证 JSON 响应是否符合该表达式。我们下面用一个 Demo 来介绍 JSON 断言的使用。想要学习更多关于 JMeter 的知识,可访问 Jmeter 中文文档。
添加 HTTP 接口
我们有如下的 HTTP 接口。
![JMeter JSON 断言](https://apifox.com/apiskills/content/images/2023/07/image-650.png)
JSON 路径表达式介绍
JMeter 将会对响应进行 JSON 解析,并使用用户输入的 JSON 路径表达式进行验证。表达式由一系列的属性名和数组索引组成:以 “$.” 开头,用“.”和“[]”分隔。例如,以下 JSON 响应:
{
"name": "John",
"age": 30,
"cars": [
{
"name": "Ford",
"models": [
"Fiesta",
"Focus",
"Mustang"
]
},
{
"name": "BMW",
"models": [
"320",
"X3",
"X5"
]
}
]
}
可以使用以下表达式获取相应的值:
- $.name:获取 "John"。
- $.cars[0].name:获取 "Ford"。
- $.cars[1].models[2]:获取 "X5"。
添加 JSON 断言
添加 JSON 断言: 右击接口 > 添加 > 断言 > JSON断言。
![JMeter](https://apifox.com/apiskills/content/images/2023/07/image-651.png)
之前的接口返回的数据结果如下:
{
"total": 3,
"data": [
{
"id": 1,
"name": "Apple",
"price": 100
},
{
"id": 2,
"name": "Orange",
"price": 200
},
{
"id": 3,
"name": "Banana",
"price": 300
}
]
}
我们对 total 做断言:
![jmeter添加 JSON 断言](https://apifox.com/apiskills/content/images/2023/07/image-652.png)
我们对 data 的第 1 项 name 做断言:
![jmeter添加 JSON 断言](https://apifox.com/apiskills/content/images/2023/07/image-653.png)
断言结果
运行用例。如果 JSON 响应符合断言,则什么都不会发生。否则,在结果树中会看到报错信息。将 data 的第 1 项 name 的断言值改成 Apple3
,运行,就会看到如下的报错:
![jmeter添加 JSON 断言](https://apifox.com/apiskills/content/images/2023/07/image-654.png)
总结
通过使用 JSON 断言,用户可以轻松地验证 JSON 格式响应是否符合预期。然而,在配置 JSON 断言时需要特别注意 JSON 路径表达式的编写,确保表达式正确,否则将会导致断言失败。
试试比 JMeter 更好用的 API 工具:Apifox
在 Apifox 使用断言也很容易。上面的例子,对应在 Apifox 中的实现:
![Apifox 断言](https://apifox.com/apiskills/content/images/2023/07/image-655.png)
Apifox 支持的断言判断条件更丰富:
![Apifox 断言](https://apifox.com/apiskills/content/images/2023/07/image-656.png)
断言结果出错时,报错信息直接展示在响应内容旁边,方便对照内容找出问题。
![Apifox 断言](https://apifox.com/apiskills/content/images/2023/07/image-657.png)
JMeter 可以用来做性能测试,但在日常工作中,我们还有更多的内容要做: API 设计,API 调试,API Mock 等。我们可能会使用多个工具,但在多个工具之间频繁切换(API 设计工具 Swagger、API 测试工具 JMeter)经常会导致数据不一致和团队协作低效率。
Apifox 是一款更加智能化的 API 设计/开发/测试工具,相较于 JMeter 软件,Apifox 有以下优势:
![Apifox](https://apifox.com/apiskills/content/images/2023/07/image-658.png)
易于使用
Apifox 提供简单易用的界面和交互方式,用户不需要编写脚本或进行复杂的配置即可完成 API 测试。此外,Apifox 还提供了免费的模板和示例,帮助用户更快地创建 API 请求。
自动化测试
Apifox 提供了自动化测试的功能,用户可以通过自动化测试来减少测试时间和人力成本。用户只需要设置测试计划,Apifox 就可以自动运行测试,并生成测试结果和报告。此外,Apifox 还支持测试套件,可以一次性运行多个测试用例,提高测试效率。
多环境支持
Apifox 支持多个测试环境,用户可以通过切换环境来测试不同的 API。用户只需要设置环境变量,Apifox 就可以自动切换 API 请求的 URL 和参数。此外,Apifox 还支持环境导入和导出,方便用户在不同的设备或团队之间共享测试环境。
协作和分享
Apifox 提供了协作和分享的功能,用户可以与团队成员或其他人分享测试结果和测试数据。用户还可以将测试结果和报告导出为 HTML 格式。此外,Apifox 还支持团队协作和权限管理,可以让团队成员共享 API 设计和测试资源。
总之,相较于 JMeter,Apifox 更加易于使用和智能化,可以帮助用户更高效地进行 API 测试和管理。无论是个人开发者还是企业团队,都可以通过 Apifox 提高 API 测试的效率和质量。因此,越来越多人开始选择使用 Apifox 替代 JMeter。
知识扩展: