查看详细图文教程↓

一、全局变量方式

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添加

  1. var sign = {
  2. toUnicode: function(s) {
  3. return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g, function(newStr) {
  4. return "\\u" + newStr.charCodeAt(0).toString(16);      
  5. });    
  6. },
  7. run: function(token) {
  8. if (typeof token == "undefined") {
  9. token = "6fe383bcacc";
  10. if (globals.defaultToken) {
  11. token = globals.defaultToken
  12. }
  13. }
  14. var self = this;
  15. var tmpArr = {};
  16. var reqData = request.data;
  17. if (_.isString(reqData)) {
  18. var reqType = request.headers['Content-Type'];
  19. if (_.endsWith(reqType, 'json')) {
  20. reqData = JSON.parse(reqData)
  21. } else if (_.endsWith(reqType, 'xml')) {
  22. reqData = xml2Json(reqData).xml
  23. }
  24. }
  25. if (_.isArray(reqData)) {
  26. reqData = _.sortByOrder(reqData, ["key"], ['asc']);
  27. _(reqData).forEach(function(item) {
  28. if (!item.disabled) {
  29. if (_.isString(item.value)) {
  30. item.value = self.toUnicode(item.value);
  31. }
  32. tmpArr[item.key] = item.value
  33. }
  34. }).value()
  35. } else if (_.isObject(reqData)) {
  36. var keys = _.sortBy(_.keys(reqData));
  37. _(keys).forEach(function(key) {
  38. if (_.isString(reqData[key])) {
  39. reqData[key] = self.toUnicode(reqData[key]);
  40. }
  41. tmpArr[key] = reqData[key]
  42. }).value()
  43. }
  44. if (tmpArr.iRequestTime && globals.timestamp) {
  45. tmpArr.iRequestTime = globals.timestamp
  46. }
  47. delete tmpArr.sSign;
  48. var json = JSON.stringify(tmpArr).replace(/\\\\u/g, '\\u');
  49. var sign = CryptoJS.MD5(token + "_xxxxxxxxxx_" + json, {
  50. asString: true
  51. }).toString();
  52. sign = CryptoJS.MD5(sign + "_xxxxxxxxxx_" + token, {
  53. asString: true
  54. }).toString();
  55. postman.setGlobalVariable("sign", sign)
  56. }
  57. }
  58. 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. 全局变量添加菜单

执行结果:

postman自动生成签名的更多相关文章

  1. JMeter 接口测试 自动生成签名机制

    在进行接口测试时,遇到接口进行了签名校验,为实现自动生成签名,经过一点研究终于成功. 首先,需要从前端获取 签名加密包  XXXsign.jar..  建议将该jar包放在 jmeter lib 目录 ...

  2. [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)

    在android4.0以后的sdk里那个脚本就失效了,主要是因为 apkbuilder这个程序不见了: 人家sdk升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...

  3. Jmeter在Http Rest接口中自动生成签名(Json格式请求参数)

    第一步: 签名的java类生成jar包,导入到jmeter的lib目录下(依赖的第三方包也要导入) 第二步:编写jmeter脚本,这里使用BeanShell 进行签名串的生成,目录结构如下: Bean ...

  4. postman发送HTTP请求自动生成MD5签名

    POSTMAN是常用的接口测试工具 如何进行MD5签名呢? 代码如下: /** * 通过request.data获取body的内容,这个是postman内置变量 * 常用内置参数如下: * reque ...

  5. IntelliJ IDEA / Eclipse 自动生成 Author 注释 签名

    Author 注释 签名如下: /*** @author 稚枭天卓 E-mail:zhxiaotianzhuo@163.com* @version 创建时间:2016-6-20 下午04:58:52* ...

  6. Android Studio自动生成带系统签名的apk

    介绍签名的两种方式: 1.signapk.jar命令行方式: 如果你需要开发一个带有系统权限的app,往往需要配置SharedUserId,比如: </pre><pre name=& ...

  7. IntelliJ IDEA 创建的文件自动生成 Author 注释 签名

    IntelliJ IDEA 创建的文件自动生成 Author 注释 签名1.打开 File --> Setting2.找到 Editor --> File and Code Templat ...

  8. drf频率源码、自动生成接口文档、JWT

    目录 一.drf频率源码分析 二.自动生成接口文档 1 安装依赖 2 设置接口文档访问路径 3 文档描述说明的定义位置 4 访问接口文档网页 三.JWT 1 JWT基本原理 1.1 header 1. ...

  9. 深入浅出Mybatis-sql自动生成

    本文提供了一种自动生成sql语句的方法,它针对的对象是有主键或唯一索引的单表,提供的操作有增.删.改.查4种.理解本文和本文的提供的代码需要有java注解的知识,因为本文是基于注解生成sql的.本文适 ...

随机推荐

  1. vue 一开始

    项目安装 vue init webpack bibivue-router Y npm run dev

  2. ORACLE创建用户,建表空间,授予权限

    1.创建用户表空间 CREATE TABLESPACE my_tsLOGGINGDATAFILE 'D:\app\win7\oradata\orcl\my_ts.dbf' SIZE 10M AUTOE ...

  3. sourceTree的下载与安装

    一. SourceTree是什么? 一个拥有可视化界面的项目版本控制的软件,适用于git项目管理,在window和mac均可使用. 二. SourceTree下载 下载地址:SourceTree官网 ...

  4. Windows 安装 RabbitMQ

    RabbitMQ概述 RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.Ra ...

  5. Excel 报表导入导出

    使用 Excel 进行报表的导入导出,首先下载相关的 jar 和 excel util. Excel Util 下载地址 引入依赖: <!-- poi office --> <dep ...

  6. extjs grid demo

    Ext.onReady(function () { var store = Ext.create('Ext.data.Store', { fields: ['id', 'name', 'account ...

  7. 51 nod 1109 01组成的N的倍数

    1109 01组成的N的倍数 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且 ...

  8. JAVA多线程提高十三:同步集合类的应用

    1.引言 在多线程的环境中,如果想要使用容器类,就需要注意所使用的容器类是否是线程安全的.在最早开始,人们一般都在使用同步容器(Vector,HashTable),其基本的原理,就是针对容器的每一个操 ...

  9. 重构改善既有代码设计--重构手法09:Substitute Algorithm (替换算法)

    你想要把某个算法替换为另一个更清晰地算法.将函数本体替换为另一个算法. string FoundPerson(string[] people) { for (int i = 0; i < peo ...

  10. HTML DOM 节点介绍(nodeName,nodeValue,nodeType)

    对于初学者来说,HTML DOM 里面的 nodeName.nodeValue 以及 nodeType 三个属性的作用和取值不是很清楚.下面整理的信息包含有关于节点的详细信息,供参考. 节点信息 每个 ...