解决postman环境切换,自动获取api签名时间及签名

 

postman调试api接口时,常遇到两个问题:api

  1.环境分为开发环境,测试环境,正式环境,如何只写一个接口,经过切换postman环境来实现不一样环境的接口调用?post

  2. api接口请求时每每会添加,来源(Source),签名时间(Sign-Time),签名(Sign).同一个接口不一样时间段请求,签名时间,签名也不一样,如何实现每次自动获取签名时间,签名?测试

案例及解决:this

  问题1:postman中能够设置环境,在不一样的环境分别设置环境变量(url),而后在接口中使用 {{url}}来替换. 以下图url

 

 

 

问题2:因本人签名时间/签名放在请求头里,如下以此为例.spa

1).能够在postman全局变量或环境变量增长key/value 分别对应以下 wdsign/js代码,代码以下3d

var wdsign = {
    getSource: function() {
        var source = pm.environment.get('Source');
        if(source === undefined)
        {
            source = 'default_source';
            pm.environment.set("Source", source);
        }
        return source;
    },
    getSignTime: function() {
        return parseInt(new Date().getTime() / 1000);
    },
    getSign: function(source, signTime) {
        let data = request.data;
        let dataString = ''
        if (typeof data === 'object') {
            Object.keys(data).sort().forEach(function(ele, index) {
                let value = data[ele]
                if (typeof value === 'object') {
                    value = JSON.stringify(value)
                }
                dataString += ele + '=' + value
            })
        }
        dataString += source;
        dataString += signTime;
        return  CryptoJS.MD5(dataString).toString();;
    },
    run: function() {
        var source = this.getSource();
        var signTime = this.getSignTime();
        var sign = this.getSign(source, signTime);
        pm.environment.set("Sign-Time", signTime);
        pm.environment.set("Sign", sign);
    }
}

 

2).在请求头中分别对应设置以下调试

3).在Pre-requestScript添加,代码以下code

eval(globals.wdsign);
wdsign.run();
相关文章
相关标签/搜索