Postman是一个非常强大的HTTP接口测试工具,但是最近项目接口升级,为了防止恶意请求,所有的接口都增加了签名的校验。这样安全性更高,但是在使用Postman自测接口的时候会比较麻烦,每次都需要生成一个临时的签名,而且使用一次之后就会过期。 本文借助Postman的
Pre-request Scritp
可以实现自动签名功能,每次请求都会生成一个新的签名
代码实现
//签名一般都会使用时间戳,一方面可以生成随机字符串,一方面也用来保证请求的及时性
let timestamp = new Date().getTime();
pm.environment.set("timestamp", timestamp);
//签名的必备参数
let appid = pm.globals.get("appId");
let appSecret = pm.globals.get("appSecret");
//签名中用到的参数
let str = request.data["name"] + request.data["age"];
//计算签名(很多项目中的签名,原始字符串还会加入请求参数)
let sign = CryptoJS.MD5(str + appid + appSecret + timestamp).toString();
pm.environment.set("sign", sign);
console.log("timestamp: " + timestamp + " , appId: " + appid + ", appSecret: " + appSecret + ", sign: " + sign);
配置
- 在global环境或自定义环境中配置变量appId和appSecret
- 把上述代码写在请求的Pre-request Script,或者Collection中的Pre-request Script(这种方式,可以同时让Collection中的请求全部计算签名)
网友评论