一、前置脚本
前置脚本在发送请求前就执行,通常用作生成一个随机数或者当前时间戳等。
当前时间格式化
1
2
3
4
5
6
var moment = require('moment');
var data = moment().format(" YYYY-MM-DD HH:mm:ss");
console.log(data); // 2021-07-02 13:57:34
pm.globals.set("TIME", data); // 设置全局变量
// postman.setGlobalVariable("TIME", data) 设置全局变量
13 位当前时间戳
1
var cur = Date.parse(new Date());
二、后置脚本
后置脚本在请求完成后才执行,通常用作断言、提取响应数据用作全局变量供耦合接口使用。
基本语法
1
2
3
4
5
// 定义一个响应体res,获取body中所有的参数并以json格式返回
var res = JSON.parse(responseBody);
// 获取字段res.key的值并存在全局变量中
postman.setGlobalVariable("全局变量名", res.key)
常用断言
1
2
3
4
5
6
7
8
9
10
11
12
var res = pm.response.json();
pm.test("验证接口响应状态码是否等于 200", function () {
pm.response.to.have.status(200);
});
pm.test("验证接口返回字段 msg 是否等于 '创建成功'", function () {
pm.expect(res.msg).to.eql("创建成功");
});
pm.test("验证接口返回字段 success 是否等于 'true'", function () {
pm.expect(res.success).to.eql(true);
});
提取数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
var r = res.result.data;
for (i=0; i<r.length; i++) {
switch (r[i].name) {
case "账期支付":
pm.globals.set("delayPaymentId", r[i].id);
break;
case "银企付":
pm.globals.set("offlineBankPayId", r[i].id);
break;
case "优惠券":
pm.globals.set("couponSystemId", r[i].id);
break;
case "限时购":
pm.globals.set("limitSystemId", r[i].id);
break;
case "礼品卡":
pm.globals.set("giftCardSystemId", r[i].id);
break;
case "积分":
pm.globals.set("integralSystemId", r[i].id);
break;
case "购物金":
pm.globals.set("coinSystemId", r[i].id);
break;
case "团购":
pm.globals.set("groupBuySystemId", r[i].id);
break;
case "运费模板助手":
pm.globals.set("freightSystemId", r[i].id);
break;
case "全员分销":
pm.globals.set("distributionSystemId", r[i].id);
break;
case "小票打印":
pm.globals.set("printerSystemId", r[i].id);
break;
case "收银台":
pm.globals.set("cashierSystemId", r[i].id);
break;
case "独立微信小程序":
pm.globals.set("miniprogramSystemId", r[i].id);
break;
case "多门店云订货":
pm.globals.set("manyshopSystemId", r[i].id);
break;
case "扫码收款":
pm.globals.set("scanpaySystemId", r[i].id);
break;
}
}