在使用postman进行接口测试的时候,对于有些接口字段需要时间戳加密,这个时候我们就遇到2个问题,其一是接口中的时间戳如何得到?其二就是对于现在常用的md5加密操作如何在postman中使用代码实现呢?今天就为大家整理分享一下postman接口测试: 时间戳和加密
首先,postman接口的接口文档信息
此接口文档中,需要两个参数sign、requesttime,其中sign(是secret+requesttime+url加密后的结果)
第一次操作我们会按照通用手法进行操作
1.我们先找到在线时间戳,进行按照文档中的要求操作
当前时间戳+600秒,然后作为requesttime的value,
例如:requesttime:"1587381373",(当前时间戳+600秒)
时间戳转换工具:http://tool.chinaz.com/Tools/unixtime.aspx
2.把requesttime的value和密钥和请求的url进行通过MD5进行加密生成sign的value,得出32位小写的字符串
md5(密钥+requesttime+请求的url)= 62aebaab8c67af2615adb03dded4b29a
因为sign是一分钟过期一次,这样每次请求接口太耽误时间,所以就只能写脚本子自动获取计算接口,自动给参数赋值
自动化脚本操作
1.编写脚本代码
2.设置全局的参数
代码的书写方式-1
//设备密钥为全局
postman.setGlobalVariable("customerCode","xxxxx");
//设置时间戳为全局
postman.setGlobalVariable("timestamp",Math.round(new Date().getTime()/1000 + 600));
//设置请求的url为全局
postman.setGlobalVariable("ytoken","xxxxxxx");
//获取全局变量
customerCode = postman.getGlobalVariable("customerCode");
timestamp = postman.getGlobalVariable('timestamp');
ytoken = postman.getGlobalVariable("ytoken");
var str = customerCode + timestamp + ytoken;
postman.setGlobalVariable("str",str);
//对这样的字符串进行md5加密
var strmd5 = CryptoJS.MD5(str);
postman.setGlobalVariable('md5',strmd5);
console.log(str);
代码的书写方式-2
//设置当前时间戳(毫秒)
Timestamp = Math.round(new Date().getTime()/1000);
// 过期时间一分钟60秒
etime = Timestamp+600;
postman.setGlobalVariable("Timestamp",etime);
// 设置签名秘钥
secret = "xxxxxx";
// uri
URI = "xxxxxxx";
//字符串进行md5加密
//计算签名
var str = secret+etime+URI;
postman.setGlobalVariable("str",str);
var strmd5= CryptoJS.MD5(str);
postman.setGlobalVariable("SignKey",strmd5);