pre-request
需求:三方对接的接口需要在请求头中添加如下参数
Accept: application/json
appKey: appKey001
timestamp: 当前时间时间戳
sign: 请求签名,格式:APP_KEY + request秘钥 + 时间戳(以long类型的字符串),经过MD5加密后生成的串(字母小写)
// 生成时间戳
function getTimestamp(){
var time = new Date().getTime();
return time;
}
var timeStamp = getTimestamp();
var appKey = 'appKey001';
var secretKey = 'secretKey001'
let paramsStr = appKey + secretKey + timeStamp;
// md5生成sign值
let sign = CryptoJS.MD5(paramsStr).toString();
console.log('----paramsStr=' + paramsStr)
// 添加请求头信息,upsert:有则更新,没有则添加
pm.request.headers.upsert({ key: 'Accept', value: 'application/json'});
pm.request.headers.upsert({ key: 'appKey', value: appKey});
pm.request.headers.upsert({ key: 'timeStamp', value: timeStamp});
pm.request.headers.upsert({ key: 'sign', value: sign});
pre-request 中获取环境变量中的变量值
需求:获取选中环境变量中的token,如果选中环境中没有配置token值,则使用全局变量中的token值
// 获取指定环境中的 token 变量
var token = pm.environment.get("token");
if (token) { // 如果 token 变量存在
console.log("-----环境变量中token----"+ token)
// 添加指定环境中的 token
pm.request.addHeader({
key: "Authorization",
value: token
})
} else {
console.log("-----全局变量中token----"+ pm.globals.get("token"))
// 添加 globals 环境中的 token
pm.request.addHeader({
key: "Authorization",
value: pm.globals.get("token")
})
}
pre-request 中添加请求头
pm.request.addHeader("unitCode: 530112");
请求头中如果包含中文,需要使用 encodeURIComponent 进行编码,否则添加不成功
pm.request.addHeader("unitCode: 530112");
pm.request.headers.upsert({key: 'unitName', value: encodeURIComponent("单位名称530112001")});
参考:
postman中使用Pre-request Script
postman中pre-script,生成MD5接口加密参数sign