Postman是chrome 的一款插件, 现在单独可以作为一个软件进行下载,主要用于做接口请求测试,无论是前端,后台还是测试人员,都可以用 postman
来测试接口,用起来非常方便。文章源自编程技术分享-https://mervyn.life/f9e68bc7.html
在实际开发过程中,很多接口都会采用各种加密手段来保证接口的安全性。比如根据接口参数生成一个签名,在请求此接口的时候需要将此签名传递到后端。文章源自编程技术分享-https://mervyn.life/f9e68bc7.html
在测试过程中,理想的情况是我们只需要变更提交的参数即可,而不是要我们每次调用接口时手动计算签名。而postman这款神器恰恰能满足我们的需求。文章源自编程技术分享-https://mervyn.life/f9e68bc7.html
在postman实际调用接口前,可以执行自定义js,从而实现数据签名文章源自编程技术分享-https://mervyn.life/f9e68bc7.html
自定义JS可以获取到请求参数、链接参数,并且可以自定义变量文章源自编程技术分享-https://mervyn.life/f9e68bc7.html
假设现在后端需要进行如下加密校验:文章源自编程技术分享-https://mervyn.life/f9e68bc7.html
<?php
$appKey = "abcde";
$requestBody = file_get_contents('php://input');
$sign = md5($_GET['app_id'].$appKey.$_GET['ver'].$appKey . $requestBody);
if ($sign == $_GET['sign']) {
echo "校验通过";
} else {
echo "校验不通过";
}
我们需要通过postman自动生成对应签名并在请求时传递到后端文章源自编程技术分享-https://mervyn.life/f9e68bc7.html
修改Pre-request Script
选择pre-request Script 输入如下内容:文章源自编程技术分享-https://mervyn.life/f9e68bc7.html
var app_id = postman.getGlobalVariable("app_id");
var ver = postman.getGlobalVariable("ver");
var salt = postman.getGlobalVariable("app_key");
var postBody = request.data
var param = app_id + salt + ver + postBody;
var sign = CryptoJS.MD5(param, {
asString: true
});
postman.setGlobalVariable('sign',sign);
在 url 上的参数有些不同,{{app_id}},{{ver}},{{sign}} 默认去读取当前环境变量中相同的变量的值,如果当前环境变量中没有则去读取全局变量中对应的值。文章源自编程技术分享-https://mervyn.life/f9e68bc7.html
评论