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

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