在之前我們的接口添加的簽名驗證,而我自己常用Postman進行接口調試,為了能繼續調試接口,只能在Postman上動動手腳了。
聲明變量
在環境變量中添加timestamp
和sign
字段,字段名由實際情況調整修改,你也可以設置成全局或者集合變量,我個人是習慣在環境變量中設置。
編寫Pre-request Script前置請求腳本
var timestamp = (new Date()).getTime()
var queryArr = pm.request.url.query || []
var tmp = ["timestamp" + timestamp]
queryArr.each(function (item) {
// 過濾掉sign和timestamp參數
if (item.key != "sign" && item.key != "timestamp") {
tmp.push(item.key + item.value)
}
})
// 將數據排序並合並成字符串
var str = tmp.sort().join("")
// 進行MD5加密
var sign = CryptoJS.MD5(str).toString()
// 設置時間戳
pm.environment.set("timestamp", timestamp);
// 設置簽名
pm.environment.set("sign", sign)
這里只獲取URL請求的參數進行簽名驗證,其他情況可以查看pm.request
字段下的內容。
之所以過濾timestamp和sign兩個參數,不僅是因為簽名需要排除這個字段,還因為在請求前變量還是{{timestamp}}的形式,如果代入進行參數計算的話,是不會得到正確的結果的。
如果你的所有接口都需要進行前置腳本的操作,可以放到集合中的前置腳本中,它會自動應用到集合下的所有接口中。
在請求中添加變量
完成!