参数传递

在我们的业务场景中, 发布话题成功之后会生成1个具体的topic_id
回复话题的时候 需要用到这个topic_id
image.png

现在的问题是 这个topic_id 是动态生成的。每次做测试的时候,都需要手动去从上一个接口中将最新的 topic_id 值复制过来。

能不能将这个id 动态引用 ?,每次当这个id有最新的值的时候,下游的接口都能自动获取到最新值。

image.png
答案是肯定可以的。

上游接口中设置变量

上面我们讲过可以手动去添加变量,适合的场景是 这些值都是固定的,可以直接手动设置

  1. 在上游接口中 找到 【Tests】 面板

image.png

  1. 在上游的Tests 面板中编写代码 (在上游的接口中设置变量) ```javascript // 1. 使用代码的方式获取到 服务器返回的结果。 data 就表示服务器返回的整个json数据 var data = pm.response.json()

// 2. 从服务器返回的结果中 提取 自己需要的值, 设置为全局变量 // “topicid” 变量的名字,data[“topic_id”] 实际运行结果中的值 pm.globals.set(“topicid”,data[“topic_id”])

  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/87080/1625983441554-7ccf08ee-cf85-4de3-9e1e-abc4a9766036.png#clientId=uf4a02469-9f75-4&from=paste&height=426&id=uc710e2a2&margin=%5Bobject%20Object%5D&name=image.png&originHeight=851&originWidth=1736&originalType=binary&ratio=1&size=176675&status=done&style=none&taskId=u2df0b294-ddf5-40bb-aa4e-a0ed18ddef3&width=868)
  2. <a name="YYAqa"></a>
  3. ## 练习
  4. 将回复话题中的 reply_id 的值 设置为变量。 变量名为 replyid<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/87080/1625984338689-c9ca90ae-647e-477f-99ee-b338125ad8aa.png#clientId=uf4a02469-9f75-4&from=paste&height=383&id=ua842e85f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=766&originWidth=1655&originalType=binary&ratio=1&size=130062&status=done&style=none&taskId=u59ca1acb-b5e0-466c-b6aa-358f0c1cca7&width=827.5)
  5. ```javascript
  6. var data = pm.response.json()
  7. pm.globals.set("replyid",data["reply_id"])

image.png
将未读消息中的id值设置为变量

  1. // 1. 获取整个服务器返回的结果
  2. var data = pm.response.json()
  3. // 2. 获取要取得值 取值的时候,从最外层开始取,如果结果中有 [],要加索引值,索引从0开始
  4. pm.globals.set("replyid",data["data"]["hasnot_read_messages"][0]["id"])

image.png
设置成功。


image.png

  1. 先发布话题 (发布话题就是上游接口)

image.png
在上游接口中 设置变量

  1. var data = pm.response.json()
  2. pm.globals.set("topicid",data["topic_id"])

image.png

  1. 在下游接口中使用变量

输入请求参数

  1. {
  2. "accesstoken":"{{token1}}",
  3. "topic_id":"{{topicid}}",
  4. "title":"nba明天第三场开打",
  5. "tab":"share",
  6. "content":"太阳总冠军,保罗总冠军"
  7. }

image.png


postman中内置的变量

我们可以根据自己的需要创建变量,postman中也内置了一些常用的变量。
参考官网
https://learning.postman.com/docs/writing-scripts/script-references/variables-list/

使用的时候 还是直接使用 {{}} 来引用变量。
image.png