Postman- 提取headers和body裏參數計算sign值

根據不同公司約束不同, 腳本也不同

var header_list=pm.request.getHeaders();         // 獲取headers裏的數據,數組形式
var header_param='';
for(var item in header_list){
    var value=pm.request.headers.get(item);
    header_param+=item+"="+value+"&";          //將headers裏的數據,轉換成 key=value的形式,並且以&拼接所有參數
}

var url = request.url;
var body_param = url.split("?")[1];
var param=header_param+body_param;  // headers串和body串已經拼成全部參數的串,爲下一部求sign做準備

if (param != null){                 
    var params = param.split("&");
    params.sort();                                        // 按首字母排序,
    var keys = new Array(params.length);//下面一大堆,就是爲了把串裏的引用的全局變量,變成值,而不是{{globals}}
    var values = new Array(params.length);
    for (var i = 0; i < params.length; i++) {
        keys[i] = params[i].split("=")[0];
        values[i] = params[i].split("=")[1];
        if(values[i].indexOf("{{")!= -1) {
            temp = values[i].replace("{{", "");
            temp = temp.replace("}}", "");
            values[i] = pm.globals.get(temp);
            if(keys[i] == "timeStamp") {               //這裏定義了時間戳
                values[i] = Math.round(new Date().getTime());
                pm.globals.set("TIMESTAMP", values[i]);
         }
            if(keys[i] == "password"){                 // 給密碼加密, 這裏有個疑惑,不知道如何調用postman定義的變量中的initial value 所以只能重新自己定義了一個initialpassword,拿到真正密碼, 再把加密後的密碼賦值給password
                values[i] =pm.environment.get("initialpassword");
                console.log(values[i]);
                values[i] =CryptoJS.MD5(values[i]).toString();
                pm.environment.set("password", values[i]);
         }
        } 
    }
   
    var str = []
    for (var p = 0; p < keys.length; p++) {
        if (keys[p] == "sign" || values[p] === "") {
            continue;
        }
         
        str.push(keys[p] + "=" + values[p]);
    }
    var sign = str.join("&");
    sign=sign+"你們公司的密鑰";
    console.log(sign);
    pm.globals.set("SIGN", CryptoJS.MD5(sign).toString());
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章