postman发送参数

301 阅读1分钟

Pre-request Script语法参考

1、如果需要发送一些变化的参数使用两个大括号包裹起来;例如:{{date}}{{signstr}} 2、语法类似js语法

例子1:

//设置时间戳
var now_time = Math.round(new Date() / 1000);
pm.environment.set('date', now_time);

//签名md5加密
var str = 'anadjdriverandroiddaiDF8CC9213A950463tong' + now_time;
str = CryptoJS.MD5(str).toString()
var signstr = CryptoJS.MD5(str).toString();
pm.environment.set('signstr', signstr);

例子2:

var signKey = pm.request.body.urlencoded.get('signKey')
//请求参数名按照ASCII码升序排序
keys = Object.keys(request.data).sort()  
//拼接待签名字符串
var str = []

for (var p = 0; p < keys.length; p++) { 
    if(keys[p] == "sign" || keys[p] == "signKey" || request.data[keys[p]] === ""){ 
        continue;
    }
    str.push(keys[p] + "=" + request.data[keys[p]]);
}
// str.push('key=' + pm.environment.get("key"))
str = str.join("&") + signKey;
console.log(str);
console.log(CryptoJS.MD5(str).toString().toLowerCase());
pm.environment.unset("sign");
pm.environment.set("sign", CryptoJS.MD5(str).toString().toLowerCase());
return;

var signKey = '123456';
var dataArr = pm.request.body.urlencoded.members
var dataObj = new Object;
for (let key in dataArr) {
    var dataKey = dataArr[key].key;
    var dataVal = dataArr[key].value;
    dataObj[dataKey] = dataVal;
}

var signString = encryption(dataObj, signKey); 
var sign = CryptoJS.MD5(signString);
console.log("signString:" + signString);
console.log("sign:" + sign);
pm.environment.set("sign", sign); 
// postman.setEnvironmentVariable("sign",sign);

// 加密
function encryption(data, signKey) {
    let dat = [], keys = {}, string = ''
    dat = Object.keys(data).sort()
    dat.forEach(item => {
        if (data[item] != '' && data[item] != 'undefined') {
            keys[item] = data[item]
        }
    })
    for (let k in keys) {
        string += '&' + k + '=' + keys[k]
    }
    string = string.substr(1) + signKey;
    return string;

}

1.png

339bfe0ca17992a14fe8c186a6e8f60.png