1. 程式人生 > 實用技巧 >postman預處理 自動生成簽名引數及配置access_token

postman預處理 自動生成簽名引數及配置access_token

postman預處理 自動生成簽名引數及配置access_token

1、通過預處理,完成引數簽名

2、通過把認證介面得到的token設為環境變數,業務介面可獲取環境變數的token

Pre-request Script

let queryParam = pm.request.url.query.members;
let param = request.data;
let appSecret = pm.environment.get("appSecret");;//簽名Key
let appId = pm.environment.get("appId");

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){ if(param[k] == null || param[k] == '') { continue; } //kv.push(k + '=' + encodeURIComponent(param[k])) //urlencode編碼 kv.push(k + '' + param[k]) //urlencode編碼 } //拼接 //var sign = kv.join('&'); var sign = kv.join(''); sign
= sign + appSecret; console.log(sign); sign = CryptoJS.MD5(sign).toString(); console.log(sign); //設定環境變數 postman.setEnvironmentVariable("sign", sign);

Body引數

{
    "appId": "test",
    "apiVersion": "1.0",
    "timestamp": "11111111111111111",
    "page": "1",
    "pageSize": "10",
    "longitude": "106.670984",
    "latitude": "26.731582",
    "range": "1000",
    "couponCode": "12345",
    "sign":"{{sign}}"
}

Token

設定Tests

//設定token
var responeData = JSON.parse(responseBody); //把響應結果轉為JSON物件
pm.environment.set("token", responeData.data.access_token); //從響應結果JSON物件中獲取到token引數,並放到環境變數
console.log("token: " + responeData.data.access_token);