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. 全局变量添加菜单

执行结果:

postman自动生成签名的更多相关文章
- JMeter 接口测试 自动生成签名机制
在进行接口测试时,遇到接口进行了签名校验,为实现自动生成签名,经过一点研究终于成功. 首先,需要从前端获取 签名加密包 XXXsign.jar.. 建议将该jar包放在 jmeter lib 目录 ...
- [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)
在android4.0以后的sdk里那个脚本就失效了,主要是因为 apkbuilder这个程序不见了: 人家sdk升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...
- Jmeter在Http Rest接口中自动生成签名(Json格式请求参数)
第一步: 签名的java类生成jar包,导入到jmeter的lib目录下(依赖的第三方包也要导入) 第二步:编写jmeter脚本,这里使用BeanShell 进行签名串的生成,目录结构如下: Bean ...
- postman发送HTTP请求自动生成MD5签名
POSTMAN是常用的接口测试工具 如何进行MD5签名呢? 代码如下: /** * 通过request.data获取body的内容,这个是postman内置变量 * 常用内置参数如下: * reque ...
- IntelliJ IDEA / Eclipse 自动生成 Author 注释 签名
Author 注释 签名如下: /*** @author 稚枭天卓 E-mail:zhxiaotianzhuo@163.com* @version 创建时间:2016-6-20 下午04:58:52* ...
- Android Studio自动生成带系统签名的apk
介绍签名的两种方式: 1.signapk.jar命令行方式: 如果你需要开发一个带有系统权限的app,往往需要配置SharedUserId,比如: </pre><pre name=& ...
- IntelliJ IDEA 创建的文件自动生成 Author 注释 签名
IntelliJ IDEA 创建的文件自动生成 Author 注释 签名1.打开 File --> Setting2.找到 Editor --> File and Code Templat ...
- drf频率源码、自动生成接口文档、JWT
目录 一.drf频率源码分析 二.自动生成接口文档 1 安装依赖 2 设置接口文档访问路径 3 文档描述说明的定义位置 4 访问接口文档网页 三.JWT 1 JWT基本原理 1.1 header 1. ...
- 深入浅出Mybatis-sql自动生成
本文提供了一种自动生成sql语句的方法,它针对的对象是有主键或唯一索引的单表,提供的操作有增.删.改.查4种.理解本文和本文的提供的代码需要有java注解的知识,因为本文是基于注解生成sql的.本文适 ...
随机推荐
- Kubernetes 1.5通过Ceph实现有状态容器
在上一篇博文,我们通过kubernetes的devlopment和service完成了sonarqube的部署.看起来已经可用,但是仍然有一个很大的问题.我们知道,像mysql这种数据库是需要保存数据 ...
- SQL Server清理Log文件
---SQL 2008 在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式. USE [master] go ALTER DATABASE PS SET RECOVERY ...
- == 和 equals,equals 与 hashcode,HashSet 和 HashMap,HashMap 和 Hashtable
一:== 和 equals == 比较引用的地址equals 比较引用的内容 (Object 类本身除外) String obj1 = new String("xyz"); Str ...
- .NET中的异常和异常处理
.NET中的异常(Exception) .net中的中异常的父类是Exception,大多数异常一般继承自Exception. 可以通过编写一个继承自Exception的类的方式,自定义异常类! 异常 ...
- 【leetcode 简单】 第七题 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...
- NYOJ 93 汉诺塔 (数学)
题目链接 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片 ...
- 爬虫--PyQuery
什么是PyQuery? PyQuery 初始化 字符串初始化 from pyquery import PyQuery as pq html=""" <div> ...
- F - Warm up HDU - 4612 tarjan缩点 + 树的直径 + 对tajan的再次理解
题目链接:https://vjudge.net/contest/67418#problem/F 题目大意:给你一个图,让你加一条边,使得原图中的桥尽可能的小.(谢谢梁学长的帮忙) 我对重边,tarja ...
- AngularJS 指令绑定 & 简介
指令中独立scope 的 & 官方说明: 1. 绑定表达式 2. 经常用来绑定回调函数 诡异的地方在于,这个 & 某次听人说在子组件中是不能传值给callback的,好奇查了一下官方文 ...
- 多维数组的字符依次输出,用python实现
#-*- coding=utf-8 -*-listm=["s","l","z","x","l",&q ...