Postman預處理自動生成簽名參數(sign)


Postman預處理自動生成簽名參數(sign)
很多接口會有簽名參數,為了防止被惡意篡改參數,所以對所有參數用一定規則排列后+鹽再MD5加密。

有些開發可能配置了在測試環境暫時屏蔽簽名,或者用一個通用簽名。但其實完全可以在不破壞系統完整性的前提下,又能很輕松的讓postman根據規則自動生成簽名參數來進行測試。


這2條語句可以分別獲得body參數和url中的query參數。

 

let queryParam = pm.request.url.query.members;
let param = request.data;
let key = "xxxxxxxxxxxx"; //簽名Key

try {
  let json = JSON.parse(param); //序列化JSON BODY
  param = json;
  }catch(err){
  //BODY不是JSON格式
  }

//Get & 合並GET和POST參數
for (let i in queryParam){
    param[queryParam[i].key] = queryParam[i].value;
}

//Post
//取key
var keys = [];
for (let k in param){
    if (k == 'sign'){
        continue;
    }
    keys.push(k);
    
}
//排序
keys.sort();

//取value
var kv = [];
for (let k of keys){
    kv.push(k + '=' + encodeURIComponent(param[k])) //urlencode編碼
    
}

//拼接
var sign = kv.join('&');
sign = sign + key;
console.log(sign);
sign = CryptoJS.MD5(sign).toString();
console.log(sign);

//設置環境變量
postman.setEnvironmentVariable("sign", sign);

PS: 不同公司、不同接口規則不同,例如不需要urlencode、不需要排序的請自行修改腳本

再用{{sign}}從環境變量中取出sign值。


成功請求


這段腳本兼容GET參數、以及表單形式的BODY和JSON形式的BODY


保持登錄狀態
通過設置環境變量,我們可以把登錄接口返回的認證信息存起來,之后其他接口可以直接從環境變量中獲取。達到保持登錄狀態的效果。

先在登錄接口的Tests中獲取token參數並放到環境變量中


在這里插入圖片描述

 

//設置token
var responeData = JSON.parse(responseBody); //把響應結果轉為JSON對象
pm.environment.set("token", responeData.data.token); //從響應結果JSON對象中獲取到token參數,並放到環境變量
console.log("token: " + responeData.data.b_token); 
  1. 然后在業務接口的頭信息中,用{{token}}方式從環境變量中獲取token實際值。

在這里插入圖片描述

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM