解决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();
解决postman环境切换,自动获取api签名时间及签名的更多相关文章
- oracle 插入记录,字段自动获取当前系统时间(YYYY-MM-DD HH24:MI:SS)
需求: 插入一条记录,要求自动获取当前日期,并且格式为(YYYY-MM-DD HH24:MI:SS) sql语句: insert into SY_COMM_CONFIG(CONF_ID, S_MTIM ...
- Postman接口测试:自动获取登录后的cookie并设置环境变量
在对网站进行接口测试的时候,很多请求往往是需要带登录的cookie才能请求成功的,一般来说,可以用抓包软件(fiddler,浏览器的F12)来查看登录后的cookie,并把它设置到postman的环境 ...
- postman—环境切换和设置变量
postman提供了environment管理功能,想要在多个环境中测试,比如在测试环境.灰度环境.生产环境等,只需要用同样的接口,切换下环境即可,非常方便.具体步骤: 一.切换环境 1.点击界面右上 ...
- [解决]Kali Linux DHCP自动获取IP失败 坑爹的VMWare桥接
root@kali:~# service networking restart [....] Running /etc/init.d/networking restart is deprecated ...
- <自动化测试>之<自动获取手机短信验证码>
第一次写博,最近解决了做自动化测试短信验证码自动获取填入的方法减少了脚本的人工干预,并非拦截短信,所以不存在安全警报提醒,拿出来分享给大家,有感兴趣的大家可以加Q1856100 目前在职测试开发,,写 ...
- Mysql设置字段自动获取时间
问题:现在在用户表中有一个字段表示用户创建的时间 第一个想法是写一段程序获得系统当前时间,想想就太麻烦了,果断放弃,之后想到了存储过程和函数,再想想还要编写存储过程或者函数的代码,有点放弃的想法,但是 ...
- Spring boot 的profile功能如何实现多环境配置自动切换
通常服务端应用开发需要经过以下几个流程: 开发 -> 测试 -> RC验证 -> 上线 这就涉及到四个不同的环境,开发环境.测试环境.RC环境以及生产环境,为了避免不同环境之间相互干 ...
- 自动获取淘宝API数据访问的SessionKey
最近在忙与淘宝做对接的工作,总体感觉淘宝的api文档做的还不错,不仅有沙箱测试环境,而且对于每一个api都可以通过api测试工具生成想要的代码,你完全可以先在测试工具中测试之后再进行代码的编写,这样就 ...
- 解决:win8.1 oepnvpn客户端 redirect-gateway def1无效,自动获取的IP没有网关问题
解决:win8.1 oepnvpn客户端 redirect-gateway def1无效,自动获取的IP没有网关问题 该问题是操作系统权限问题,需要将程序设置为以管理员模式运行和以windows7兼容 ...
随机推荐
- Phabricator服务的搭建
目录 概述 遇到的坑-Phabricator连接不上MySQL 准备环境 安装软件 安装Nginx 安装MySQL 安装PHP 下载Phabricator 配置 配置nginx和php 配置phabr ...
- Win7 查看端口占用的进程,并根据进程id杀死进程。
搞开发的经常会有一堆的工具要使用,而很多工具都需要开启特定的端口,难免会出现端口冲突的场景,那在Win7 环境下如何排除端口被哪个进程占用了呢? 首先,通过 netstat -ano | findst ...
- vue中,对象数组多层嵌套时,更新数据更新页面
vue中的对象和数组的元素直接赋值修改时,是不能响应到view中去的 1.对象更新 this.a={title:'列表1’}; this.a.title='列表2’; <h1>{{a.ti ...
- jmeter实例介绍
JMeter基础之一 一个简单的性能测试 测试需求: 1)测试目标网站是fnng.cnblogs.com 和 tt-topia.rhcloud.com 2)测试目的是该网站在负载达到20 QPS 时 ...
- Mac_安装Homebrew以及Maven
Mac OSX上的软件包管理工具,安装软件或者卸载软件. 打开终端输入(如不行,可参考homebrew官网): ruby -e "$(curl -fsSL https://raw.githu ...
- GMA Round 1 新程序
传送门 新程序 程序框图如图所示,当输入的n=时,输出结果的ans是多少? 容易看出该程序求n以内质数个数,50以内有15个. 定位:简单题
- __x__(22)0907第四天__ 垂直外边距重叠
外边距重叠, 也叫“外边距合并”,指的是,当两个外边距相遇时,它们将形成一个外边距. 合并后的外边距的高度,等于两个发生合并的外边距的高度中的较大者...在布局时,易造成混淆. 1. 上下元素 垂直外 ...
- python全栈开发 * mysql * 180828
一.mysql概述\s 查看当前自己的信息1.mysql就是用于管理我们的文件的一个软件;2.mysql有两个软件: 服务器软件: socket服务端 本地文件操作 解析指令(mysql语句) 客户端 ...
- eclipese pyDEV安装----可以直接运行python文件
重点: 1.Eclipse中手动安装pydev插件 2.开始写代码 1.下载匹配eclipse的pyDev版本: https://sourceforge.net/projects/pydev/file ...
- git rebase和git merge的用法
http://softlab.sdut.edu.cn/blog/subaochen/2016/01/git-rebase%E5%92%8Cgit-merge%E7%9A%84%E7%94%A8%E6% ...