postman中設定全域性動態sign簽名指令碼
阿新 • • 發佈:2020-08-28
進入某個collection的全域性edit設定:
在"Pre-request Scripts"選項卡設定全域性指令碼:
全域性指令碼貼上程式碼:
console.log("全部請求引數:" + request.data); var keys = Object.keys(request.data).sort() //請求引數名按照ASCII碼升序排序 //拼接待簽名字串 var str = [] for (var p = 0; p < keys.length; p++) { if(keys[p] == "sign" || request.data[keys[p]] === ""){ // "==" ==寬鬆相等,隱性型別轉換,值相等,返回true; "===" 嚴格相等,值和型別都相等,返回true continue; } str.push(keys[p] + "=" + request.data[keys[p]]); } var secretCode = 'secret_code'; var signStr = str.join("&") + secretCode; console.log("待加密字串 signStr == " + signStr); //MD5加密簽名規格,並賦值給環境變數`sign` pm.environment.unset("sign"); var sign = CryptoJS.MD5(signStr).toString().toUpperCase(); console.log("計算出的簽名 sign == " + sign); pm.environment.set("sign", sign);
在這裡計算好的sign變數,在request裡動態獲取值: {{sign}}
end.