postman自动生成签名

查看详细图文教程↓

一、全局变量方式

1. 在全局变量添加key:value分别是autoSign和var sign={toUnicode:function(s){return s.replace(/([u4E00-u9FA5]|[uFE30-uFFA0])/g,function(newStr){return"\u"+newStr.charCodeAt(0).toString(16)})},run:function(token){if(typeof token=="undefined"){token="6fe383bcacc";if(globals.defaultToken){token=globals.defaultToken}}var self=this;var tmpArr={};var reqData=request.data;if(_.isString(reqData)){var reqType=request.headers['Content-Type'];if(_.endsWith(reqType,'json')){reqData=JSON.parse(reqData)}else if(_.endsWith(reqType,'xml')){reqData=xml2Json(reqData).xml}}if(_.isArray(reqData)){reqData=_.sortByOrder(reqData,["key"],['asc']);_(reqData).forEach(function(item){if(!item.disabled){if(_.isString(item.value)){item.value=self.toUnicode(item.value)}tmpArr[item.key]=item.value}}).value()}else if(_.isObject(reqData)){var keys=_.sortBy(_.keys(reqData));_(keys).forEach(function(key){if(_.isString(reqData[key])){reqData[key]=self.toUnicode(reqData[key])}tmpArr[key]=reqData[key]}).value()}if(tmpArr.iRequestTime&&globals.timestamp){tmpArr.iRequestTime=globals.timestamp}delete tmpArr.sSign;var json=JSON.stringify(tmpArr).replace(/\\u/g,'\u');var sign=CryptoJS.MD5(token+"_xxxxxxxxxx_"+json,{asString:true}).toString();sign=CryptoJS.MD5(sign+"_xxxxxxxxxx_"+token,{asString:true}).toString();postman.setGlobalVariable("sign",sign)}}

2. 在Pre-request Script添加 eval(globals.autoSign);sign.run("6fe383bcacc");

二、直接执行方式

直接在Pre-request Script添加

var sign = {
    toUnicode: function(s) {
      return s.replace(/([u4E00-u9FA5]|[uFE30-uFFA0])/g, function(newStr) {
        return "\u" + newStr.charCodeAt(0).toString(16);      
      });    
    },
    run: function(token) {
      if (typeof token == "undefined") {
        token = "6fe383bcacc";
        if (globals.defaultToken) {
          token = globals.defaultToken
        }
      }
      var self = this;
      var tmpArr = {};
      var reqData = request.data;
      if (_.isString(reqData)) {
        var reqType = request.headers['Content-Type'];
        if (_.endsWith(reqType, 'json')) {
          reqData = JSON.parse(reqData)
        } else if (_.endsWith(reqType, 'xml')) {
          reqData = xml2Json(reqData).xml
        }
      }
      if (_.isArray(reqData)) {
        reqData = _.sortByOrder(reqData, ["key"], ['asc']);
        _(reqData).forEach(function(item) {
          if (!item.disabled) {
            if (_.isString(item.value)) {
              item.value = self.toUnicode(item.value);
            }
            tmpArr[item.key] = item.value
          }
        }).value()
      } else if (_.isObject(reqData)) {
        var keys = _.sortBy(_.keys(reqData));
        _(keys).forEach(function(key) {
          if (_.isString(reqData[key])) {
            reqData[key] = self.toUnicode(reqData[key]);
          }
          tmpArr[key] = reqData[key]
        }).value()
      }
      if (tmpArr.iRequestTime && globals.timestamp) {
        tmpArr.iRequestTime = globals.timestamp
      }
      delete tmpArr.sSign;
      var json = JSON.stringify(tmpArr).replace(/\\u/g, '\u');
      var sign = CryptoJS.MD5(token + "_xxxxxxxxxx_" + json, {
        asString: true
      }).toString();
      sign = CryptoJS.MD5(sign + "_xxxxxxxxxx_" + token, {
        asString: true
      }).toString();
      postman.setGlobalVariable("sign", sign)
    }
  }
sign.run("6fe383bcacc");

注意:your token可以改成你自己的token哦

三、引用方式

在body中sign所在的value填写 {{sign}}即可

==============================================================

详细图文教程如下:

第一步

在全局变量添加key:value分别是autoSign和var sign={toUnicode:function(s){return s.replace(/([u4E00-u9FA5]|[uFE30-uFFA0])/g,function(newStr){return"\u"+newStr.charCodeAt(0).toString(16)})},run:function(token){if(typeof token=="undefined"){token="6fe383bcacc";if(globals.defaultToken){token=globals.defaultToken}}var self=this;var tmpArr={};var reqData=request.data;if(_.isString(reqData)){var reqType=request.headers['Content-Type'];if(_.endsWith(reqType,'json')){reqData=JSON.parse(reqData)}else if(_.endsWith(reqType,'xml')){reqData=xml2Json(reqData).xml}}if(_.isArray(reqData)){reqData=_.sortByOrder(reqData,["key"],['asc']);_(reqData).forEach(function(item){if(!item.disabled){if(_.isString(item.value)){item.value=self.toUnicode(item.value)}tmpArr[item.key]=item.value}}).value()}else if(_.isObject(reqData)){var keys=_.sortBy(_.keys(reqData));_(keys).forEach(function(key){if(_.isString(reqData[key])){reqData[key]=self.toUnicode(reqData[key])}tmpArr[key]=reqData[key]}).value()}if(tmpArr.iRequestTime&&globals.timestamp){tmpArr.iRequestTime=globals.timestamp}delete tmpArr.sSign;var json=JSON.stringify(tmpArr).replace(/\\u/g,'\u');var sign=CryptoJS.MD5(token+"_xxxxxxxxxx_"+json,{asString:true}).toString();sign=CryptoJS.MD5(sign+"_xxxxxxxxxx_"+token,{asString:true}).toString();postman.setGlobalVariable("sign",sign)}}

                                                       图一

第二步

在Pre-request Script添加代码

eval(globals.autoSign);

 sign.run("your token");

                                                 图二

第三步

在body中把sSign参数的值设置为{{sign}}

                                               图三

说明:

1. sign.run()的参数可以不传,如果不传会默认使用全局变量中的defaultToken的值(见图一)

2. 全局变量添加菜单

执行结果:

原文地址:https://www.cnblogs.com/wish123/p/6390586.html