上下游传参 概念
根据业务场景,有不同的上游和下游接口需要参数的传递。
在讲上下游传参之前,先了解一些必要代码基础。
json数据
json 格式的数据 都是 {}
括起来的。
基本的语法
打开Postman 工具的开发者选项
开发者选项中可以编写一些基本的JavaScript代码,因为Postman中支持 JavaScript的语法。
定义json格式的数据
使用var 关键字 定义 变量,
变量名 jsondata
变量的值为 json格式的数据
var jsondata = {"name":"xiaoming"}
定义json格式的数据
- 最外层使用
{}
- 最外层使用
- 内容以成对出现 中间用
:
, 多对数据之间使用,
- 内容以成对出现 中间用
定义一个json格式的数据,要求
name | 张铁柱 |
---|---|
age | 25 |
workyear | 3 |
var jsondata = {"name":"张铁柱","age":25,"workyear":3}
访问具体字段的值
通过 .
的方式来访问其中的字段值
接口中的应用
新建主题的接口 成功之后会返回 topic_id 的值,需要将 topic_id 的值提取出来设置为变量。
postman 设置变量
打开 Tests 面板
编写代码
用代码的方式设置变量
// pm.response.json() 是postman提供的语法 表示的是服务器返回的json数据结果 (固定的语法)
var jsondata = pm.response.json();
// 使用postman中的功能设置变量 pm.globals.set 固定语法;
pm.globals.set("topid", jsondata.topic_id);
设置成功之后可以看到 设置变量名以及最新的变量值
运行成功之后,可以看到 会自动将服务器返回结果中的 topic_id 值设置为变量 topid
引用上游接口变量
已经将具体值提取为变量,下面在新建评论的请求中使用变量。
新建评论,评论成功之后 会返回 评论id, 在 【评论点赞】这个接口中需要使用到 评论id,所以需要将评论id 设置为变量。
在下游点赞接口中引用变量
复杂的json格式数据
有些服务器返回数据结果会比较多,有多层嵌套的情况下;
比如
var jsondata = {
"name":"zhangsan",
"friends":{
"name": "lisi"
}
}
当数据有多层嵌套的时候,访问里面的数据 需要 一层 一层 进行提取;
var jsondata = {
"name":"wangwu",
"info":{
"city":"shanghai",
"phone":"134****1234",
"friend":{
"name":"xiaoming",
"phone":"150****6666"
}
}
}
[] 数组格式
在json中,如果要表示多个数据, 比如 小明有2个朋友。
var jsondata = {
"name":"xiaoming",
"friends":[
{"name":"xiaohua","age":22},
{"name":"xiaohong","age":18}
]
}
当有多个格式一致的数据存放在一起的时候,使用 []
。
数据在保存的时候,我们可以通过索引的方式来提取具体的值。
索引值从 0 开始, 0 表示 第一个。
比如第一个朋友的name
这里有如下数据
var jsondata = {
"success": true,
"data": [
{
"id": "61c6c999c470c9129d8d7c3a",
"author_id": "61c4132f7a242475bbd5cece",
"tab": "ask",
"content": "明天晴天",
"title": "明天晴天吗????",
"last_reply_at": "2021-12-25T07:49:24.577Z",
"good": false,
"top": false,
"reply_count": 1,
"visit_count": 3,
"create_at": "2021-12-25T07:34:49.325Z",
"author": {
"loginname": "test_xyy",
"avatar_url": "/public/images/userlogo.png"
}
},
{
"id": "61c6ccfbc470c9129d8d7f9b",
"author_id": "61c4132e7a242475bbd5cecb",
"tab": "ask",
"content": "今天四大剁手聚会....",
"title": "今晚吃什么呢?",
"last_reply_at": "2021-12-25T07:49:15.885Z",
"good": false,
"top": false,
"reply_count": 0,
"visit_count": 0,
"create_at": "2021-12-25T07:49:15.885Z",
"author": {
"loginname": "test_wyx",
"avatar_url": "/public/images/userlogo.png"
}
},
{
"id": "61c6cc77c470c9129d8d7f45",
"author_id": "61c4133c7a242475bbd5ced9",
"tab": "ask",
"content": "不过了,哈哈哈",
"title": "一个人的圣诞节",
"last_reply_at": "2021-12-25T07:49:05.244Z",
"good": false,
"top": false,
"reply_count": 1,
"visit_count": 0,
"create_at": "2021-12-25T07:47:03.235Z",
"author": {
"loginname": "test_sxz",
"avatar_url": "/public/images/userlogo.png"
}
},
{
"id": "61c5787e8256bd0af8a9c235",
"author_id": "61c4131b7a242475bbd5ceb5",
"tab": "ask",
"content": "看完记得",
"title": "看,看,看什么看",
"last_reply_at": "2021-12-25T07:49:01.273Z",
"good": false,
"top": false,
"reply_count": 19,
"visit_count": 63,
"create_at": "2021-12-24T07:36:30.316Z",
"author": {
"loginname": "test_zhj",
"avatar_url": "/public/images/userlogo.png"
}
},
{
"id": "61c6ccecc470c9129d8d7f94",
"author_id": "61c4131b7a242475bbd5ceb5",
"tab": "ask",
"content": "干饭人干饭魂",
"title": "干饭人干饭人干饭魂",
"last_reply_at": "2021-12-25T07:49:00.691Z",
"good": false,
"top": false,
"reply_count": 0,
"visit_count": 0,
"create_at": "2021-12-25T07:49:00.691Z",
"author": {
"loginname": "test_zhj",
"avatar_url": "/public/images/userlogo.png"
}
},
{
"id": "61c6cce1c470c9129d8d7f92",
"author_id": "61c4132e7a242475bbd5ceca",
"tab": "ask",
"content": "今天圣诞节,我和朋友们在餐厅过",
"title": "圣诞节快乐",
"last_reply_at": "2021-12-25T07:48:49.676Z",
"good": false,
"top": false,
"reply_count": 0,
"visit_count": 0,
"create_at": "2021-12-25T07:48:49.676Z",
"author": {
"loginname": "test_dongwenjuan",
"avatar_url": "/public/images/userlogo.png"
}
},
{
"id": "61c6ccd7c470c9129d8d7f91",
"author_id": "61c413347a242475bbd5ced5",
"tab": "ask",
"content": "往事知多少,小楼昨夜又东风,故国不堪回首月明中",
"title": "春花秋月何时了",
"last_reply_at": "2021-12-25T07:48:39.996Z",
"good": false,
"top": false,
"reply_count": 0,
"visit_count": 0,
"create_at": "2021-12-25T07:48:39.996Z",
"author": {
"loginname": "test_chhao",
"avatar_url": "/public/images/userlogo.png"
}
},
{
"id": "61c6ccd7c470c9129d8d7f90",
"author_id": "61c413347a242475bbd5ced5",
"tab": "ask",
"content": "往事知多少,小楼昨夜又东风,故国不堪回首月明中",
"title": "春花秋月何时了",
"last_reply_at": "2021-12-25T07:48:39.044Z",
"good": false,
"top": false,
"reply_count": 0,
"visit_count": 0,
"create_at": "2021-12-25T07:48:39.044Z",
"author": {
"loginname": "test_chhao",
"avatar_url": "/public/images/userlogo.png"
}
},
{
"id": "61c6cccec470c9129d8d7f8d",
"author_id": "61c4132e7a242475bbd5ceca",
"tab": "ask",
"content": "今天圣诞节,我和朋友们在餐厅过",
"title": "圣诞节快乐",
"last_reply_at": "2021-12-25T07:48:30.987Z",
"good": false,
"top": false,
"reply_count": 0,
"visit_count": 0,
"create_at": "2021-12-25T07:48:30.987Z",
"author": {
"loginname": "test_dongwenjuan",
"avatar_url": "/public/images/userlogo.png"
}
},
{
"id": "61c6ccc3c470c9129d8d7f87",
"author_id": "61c4131b7a242475bbd5ceb5",
"tab": "ask",
"content": "干饭人干饭魂",
"title": "干饭人干饭人干饭魂",
"last_reply_at": "2021-12-25T07:48:19.281Z",
"good": false,
"top": false,
"reply_count": 0,
"visit_count": 0,
"create_at": "2021-12-25T07:48:19.281Z",
"author": {
"loginname": "test_zhj",
"avatar_url": "/public/images/userlogo.png"
}
}
]
}
上下游传参
上游设置变量
// 将第1个话题的id设置为变量
var jsondata = pm.response.json();
pm.globals.set("id",jsondata.data[0].id);
下游接口中引用变量。
总结
上下游传参
- 确定业务中的上游,下游接口
- 使用代码的方式在 上游接口中 设置变量
- 下游引用变量。