在postman中使用pre-request script管理请求参数

场景:

api请求时需要一个签名字段,该签名由其他请求字符串拼接一个secretKey后进行md5计算而得,在api频繁手动调试的情况下每次都计算大大降低了调试效率,所以使用postman的pre-request script功能自动添加该签名

操作:

首先将需要自动管理的请求字段以变量名的形式表示:

上图中signing字段

上图中signing字段通过{{signing}}变量来表示

接下来编写pre-request script脚本计算该变量并赋值:

这里使用到postman的官方文档:https://learning.postman.com/docs/postman/scripts/intro-to-scripts/

调试方法:点击菜单的view->show postman console即可打开控制台,其在Windows下快捷键为ctrl+alt+c,然后在pre-request script中写入要打印的信息,send该请求


打印调试

可见控制台对指定信息进行了打印.

编写计算脚本:

接下来是正事,首先获取全部请求参数:

const getParams = pm.request.url.query;

此处pm为postman内置api,详情参加官方文档:https://learning.postman.com/docs/postman/scripts/postman-sandbox-api-reference/


然后遍历全部请求参数,按照调用规则拼接,注意当请求中参数处于未勾选状态时会有一个disabled属性,值为true,此类参数不参与计算


此时框中参数为disabled状

let args = [];

let queryStr = "";

getParams.each((singleGetParam)=>{

    if (singleGetParam.key !== 'signing' && !singleGetParam.disabled) {

        queryStr += singleGetParam.key + '=' + singleGetParam.value + "&";

    }

});

queryStr = queryStr.slice(0,-1) + 'yourSecretKey';

最后计算并赋值给环境变量(postman中预置了CryptoJS库,可直接使用文档参加https://cryptojs.gitbook.io/docs/):

pm.environment.unset("signing");

pm.environment.set("signing", CryptoJS.MD5(queryStr).toString());

现在即可自动计算签名了

将脚本应用于整个收藏夹:

每一个请求都添加脚本太麻烦了,postman可以直接给整个收藏夹添加公用脚本,编辑收藏夹时点击pre-request script即可

收藏夹脚本

以上です

你可能感兴趣的:(在postman中使用pre-request script管理请求参数)