進入某個collection的全局edit設置:
在"Pre-request Scripts"選項卡設置全局腳本:
全局腳本貼上代碼:
function getCurrentDate() { var myDate=new Date(); // 獲取當前時間戳 var year = myDate.getFullYear(); // 獲取年份 var month = myDate.getMonth() + 1; // 獲取月份 month = month < 10 ? "0" + month : month; var days = myDate.getDate(); // 獲取日期 days = days < 10 ? "0" + days : days; var hours = myDate.getHours() + 1; // 獲取時並+1 var min = myDate.getMinutes(); // 獲取分 var seconds = myDate.getSeconds(); // 獲取秒 hours = hours < 10 ? "0" + hours : hours; min = min < 10 ? "0" + min : min; seconds = seconds < 10 ? "0" + seconds : seconds; // 定義時間格式並設置為環境變量 return year + "-" + month + "-" + days + " " + hours +":"+ min +":"+ seconds; } // appkey & secret code var secretCode = 'ctw7i3cV6eu4pNCH3n4BMzkannNJX4jQ'; var timestamp = getCurrentDate(); // 設置全局請求域名地址,和項目上下文路徑 pm.environment.set("URL", "http://127.0.0.1:8080/ecoupon-redemption-system"); pm.environment.set("timestamp", timestamp); // console.log("全部請求參數:" + request.data); request.data["timestamp"] = timestamp; var keys = Object.keys(request.data).sort() //請求參數名按照ASCII碼升序排序 //拼接待簽名字符串 var str = [] for (var p = 0; p < keys.length; p++) { if(keys[p] == "sign" || keys[p] == "signmethod" || request.data[keys[p]] === ""){ // "==" ==寬松相等,隱性類型轉換,值相等,返回true; "===" 嚴格相等,值和類型都相等,返回true continue; } str.push(keys[p] + "=" + request.data[keys[p]]); } 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}}
如果在script腳本中有使用console.log打印日志的情況,可以打開console控制台查看打印出來的日志:
macbook蘋果筆記本電腦,點擊View -> Show Postman Console:
顯示console視圖:
end.