Postman接口测试之json提取器实现接口关联——返回数据是json数据
【代码】Postman接口测试之json提取器实现接口关联——返回数据是json数据。
·
- 理解接口关联和JSON提取器的概念
- 接口关联:在接口测试中,一个接口的请求参数可能依赖于另一个接口的响应数据。例如,用户登录接口返回一个用户ID,后续的订单查询接口需要这个用户ID作为参数来查询该用户的订单信息。这种依赖关系就需要通过接口关联来实现。
- JSON提取器:当接口返回的数据是JSON格式时,JSON提取器可以帮助我们从复杂的JSON数据结构中提取出需要的信息。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以键值对的方式组织数据,易于阅读和编写,也易于机器解析和生成。
- 在Postman中使用JSON提取器实现接口关联的步骤
- 发送第一个接口请求并查看响应数据
- 在Postman中,先发送第一个接口的请求。例如,一个获取用户信息的接口,其响应数据是JSON格式,可能如下所示:
{ "user": { "id": "12345", "name": "John Doe", "email": "johndoe@example.com" } }
- 确保接口请求成功,状态码为200等正常状态码。
- 在Postman中,先发送第一个接口的请求。例如,一个获取用户信息的接口,其响应数据是JSON格式,可能如下所示:
- 设置JSON提取器来提取需要的数据
- 在第一个接口的“Tests”选项卡中编写脚本。假设我们要提取用户ID,脚本如下:
var jsonData = pm.response.json(); pm.environment.set("user_id", jsonData.user.id);
- 第一行
var jsonData = pm.response.json();
是将响应的JSON数据解析并赋值给jsonData
变量。 - 第二行
pm.environment.set("user_id", jsonData.user.id);
是将提取的用户ID(jsonData.user.id
)存储到Postman的环境变量中。这里的环境变量可以在整个Postman工作空间中被其他接口请求访问。
- 第一行
- 在第一个接口的“Tests”选项卡中编写脚本。假设我们要提取用户ID,脚本如下:
- 使用提取的数据发送第二个接口请求
- 发送第二个接口请求,该请求需要用到第一个接口提取的数据。例如,一个查询用户订单的接口,在请求参数中,将用户ID设置为刚才提取并存储的环境变量。
- 在请求参数中,将用户ID字段的值设置为
{{user_id}}
。这样,当发送第二个接口请求时,Postman会自动将{{user_id}}
替换为存储在环境变量中的实际用户ID值。
- 发送第一个接口请求并查看响应数据
- 注意事项和技巧
- 数据类型匹配:确保提取的数据类型和第二个接口请求参数所要求的数据类型一致。例如,如果第二个接口的用户ID参数要求是整数类型,而提取出来的数据是字符串类型,可能需要进行类型转换。
- 多层嵌套数据提取:如果JSON数据结构比较复杂,有多层嵌套,需要仔细确定提取路径。例如,如果数据结构是
{"data": {"user": {"details": {"id": "12345"}}}}
,那么提取用户ID的脚本可能是var jsonData = pm.response.json(); pm.environment.set("user_id", jsonData.data.user.details.id);
- 错误处理:如果第一个接口请求失败或者提取的数据不存在,需要考虑如何处理这种情况,避免第二个接口请求因为缺少正确的参数而出现错误。可以添加一些条件判断语句来增强脚本的健壮性。例如:
var jsonData = pm.response.json(); if (jsonData && jsonData.user && jsonData.user.id) { pm.environment.set("user_id", jsonData.user.id); } else { console.log("无法提取用户ID"); }
更多推荐
所有评论(0)