POSTman上下游传参

时间:2021-08-11
本文章向大家介绍POSTman上下游传参,主要包括POSTman上下游传参使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

上下游传参

 

企业微信的会议室管理接口中。

  1. 添加会议室-- meetingroom_id
  2. 删除会议室 -- 需要使用到 meetingroom_id

 

 


 

根据业务。 上游接口的出参(服务器返回结果)是下游接口的入参。

 

在做流程类的测试活动,需要处理上下游传参问题。


 

对应的api文档地址: https://work.weixin.qq.com/api/doc/90000/90135/93619

 

企业ID

ww88fc20d87e4cdfa1

会议室密钥

8kZYaPdkie4nuh3itIwhgUKpam5Xyoq5hU4uivaswp4

新建请求

 

获取Token 根据添加会议室 存在上下游关联

获取token接口返回的token值需要传递给 添加会议室。

 

  1. 上游接口 获取Token值
  1. 下游接口 添加会议室

 

上游接口设置变量

 

在获取Token请求上-- 【Tests】面板中添加设置变量的代码

 

// 1. 获取服务器返回的所有结果
var jsonData = pm.response.json();

// 2. 将服务器返回结果中的access_token 设置为全局变量,变量名为token
pm.globals.set("token", jsonData.access_token);

执行请求。可以看到全局变量中会自动生成一个 token的变量。

 

 

下游接口调用变量

在下游接口中使用到token的地方,统一使用变量的方式来引用。

练习

添加会议室成功之后 返回meetingroom_id

编辑会议室需要使用到 meetingroom_id

 

  1. 上游 添加会议室
  2. 下游 编辑会议室

添加会议室接口中使用代码的方式设置变量

 

对应的发送数据

body 数据

{
  "name":"{{$randomHexColor}}F-会议室",
  "capacity":10,
  "city":"深圳",
  "building":"腾讯大厦",
  "floor":"18F",
  "equipment":[1,2,3],
  "coordinate":
  {
    "latitude":"22.540503",
    "longitude":"113.934528"
  }
}

设置断言,添加上下游传参。

pm.test("errcode 为 0", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.errcode).to.eql(0);
});


// 设置变量
var jsondata = pm.response.json();
// 将meetingroom_id 的值设置为全局变量 ,变量名为mid
pm.globals.set("mid",jsondata.meetingroom_id)

编辑会议室中 引用变量。

 

 

会议室管理主流程

 

 

 

生成时间戳

预定功能使用到的时间是未来的某个时间。

最好是变量的方式生成

 

 

【Pre-requests】定义发送接口之前的操作。


在预定会议室这个接口中,必须要设置预定时间,如果我将时间使用今天时间来预定,今天运行这个请求是没有问题,但是到了明天,我再运行这段代码的时候,就会出现问题。

时间已经过期了。

 

最好的解决方式:

在运行这个请求之前,先用变量的方式获取一下当前的时间,获取完成之后,将这个时间设置一个变量。将变量传给接口。

也可以通过代码的方式来进行时间的计算。

 

在预定接口上【Pre-request Script】中编写代码。

 

// 使用JavaScript语法
// 获取当前时间的毫秒数
var timestamp=new Date().getTime();
// 将毫秒数转换为 秒  
var date1 = timestamp/1000;
// 定义变量,2个小时之后的时间 2小时=7200秒
var date2 = date1+7200;

// 设置变量 开始时间 parseInt() 是JavaScript中的内置函数,去掉小数点,保留整数部分
pm.globals.set("starttime",parseInt(date1));

// 设置变量 结束时间
pm.globals.set("endtime",parseInt(date2));

 starttime和endtime都是自定义名,可自己定义,运行后会在全局变量里显示,点击小眼睛可以查看到

 在body里引用对应的变量

 

 

 

 

原文地址:https://www.cnblogs.com/huxiaoguang1991/p/15129339.html