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);