解決postman環境切換,自動獲取api簽名時間及簽名


 

postman調試api接口時,常遇到兩個問題:

  1.環境分為開發環境,測試環境,正式環境,如何只寫一個接口,通過切換postman環境來實現不同環境的接口調用?

  2. api接口請求時往往會添加,來源(Source),簽名時間(Sign-Time),簽名(Sign).同一個接口不同時間段請求,簽名時間,簽名也不同,如何實現每次自動獲取簽名時間,簽名?

案例及解決:

  問題1:postman中可以設置環境,在不同的環境分別設置環境變量(url),然后在接口中使用 {{url}}來替換. 如下圖

 

 

 

問題2:因本人簽名時間/簽名放在請求頭里,以下以此為例.

1).可以在postman全局變量或環境變量增加key/value 分別對應如下 wdsign/js代碼,代碼如下

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添加,代碼如下

eval(globals.wdsign);
wdsign.run();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM