postman高级用法:pre-request scripts和token获取,并进行参数传递

console.debug("--------------------start--------------------");

try{
    //秘钥
    var secretKey = "8YfPw4s6YLcYyLc8";
    console.debug("secretKey:" + secretKey);
    
    //设置请求时间戳
    var signed_at = Math.round(new Date().getTime()/1000);
    pm.globals.set("signed_at", signed_at);
    console.debug("signed_at:" + signed_at);
    
    //请求参数
    var data = {};
    //GET
    if(pm.request.url.query instanceof Object){
        pm.request.url.query.each(function(obj){
            if(obj.disabled === undefined) data[obj.key] = obj.value;
        });
    }
    //POST
    if(pm.request.body.formdata instanceof Object){
        pm.request.body.formdata.each(function(obj){
            if(obj.disabled === undefined) data[obj.key] = obj.value;
        });
    }
    console.debug("data:" + JSON.stringify(data));
    
    //参数排序
    var params = [];
    for(var key in data){
        if(key != "sign") params.push(key);
    }
    params.sort();
    console.debug("params:" + params);
    
    //拼装字符串
    var str = '';
    params.forEach(function(value){
        str += value;
        data[value] = data[value] ? data[value] : "";
        if(data[value].indexOf("{{")!= -1){
            str += pm.globals.get(data[value].replace(new RegExp('(\{|\})', "g"),""));
        }
        else{
            str += data[value];
        }
    });
    str = secretKey + str + secretKey;
    console.debug("str:" + str);
    
    //生成签名
    var sign = CryptoJS.MD5(str).toString();
    pm.globals.set("sign", sign);
    console.debug("sign:" + sign);
    
}catch(err){
    console.error("Pre-Request Script " + err.name + ":" + err.message);
}

console.debug("--------------------done--------------------");

最近越来越懒了,能截图就截图,反正网上一大把教程,记录下只是作为自己的记录,还有有心人的共同学习

1,pre-request scripts前置条件的使用

如上图

2,test results后置条件的使用

两种获取token的方法:

方法一,控制台打印

console.log(pm.request.url);
var jsonData = pm.response.json();
pm.globals.set("token", jsonData.data.token);

方法二,直接data获取

var data =  JSON.parse(responseBody);
    pm.globals.set("new_paas_token",data.data.token)

猜你喜欢

转载自blog.csdn.net/qq_34671951/article/details/87984281