上下游传参
企业微信的会议室管理接口中。
- 添加会议室— meetingroom_id
- 删除会议室 — 需要使用到 meetingroom_id
根据业务。 上游接口的出参(服务器返回结果)是下游接口的入参。
在做流程类的测试活动,需要处理上下游传参问题。
对应的api文档地址: https://work.weixin.qq.com/api/doc/90000/90135/93619
企业ID | ww88fc20d87e4cdfa1 |
---|---|
会议室密钥 | 8kZYaPdkie4nuh3itIwhgUKpam5Xyoq5hU4uivaswp4 |
新建请求
获取Token 根据添加会议室 存在上下游关联
获取token接口返回的token值需要传递给 添加会议室。
- 上游接口 获取Token值
- 下游接口 添加会议室
上游接口设置变量
在获取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
- 上游 添加会议室
- 下游 编辑会议室
添加会议室接口中使用代码的方式设置变量
对应的发送数据
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)
编辑会议室中 引用变量。
会议室管理主流程
企业微信-会议室管理-冒烟测试.postman_collection.json
生成时间戳
预定功能使用到的时间是未来的某个时间。
最好是变量的方式生成
【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));