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;
}