PostMan模拟登录状态及请求参数签名生成

PostMan模拟登录状态及请求参数签名生成

一、PostMan模拟登录状态

在实际接口测试中有很多接口是需要登录后才有权限访问的,这时候为了测试方便,我们一般会选择暂时注释掉登录验证或者通过其他方式来模拟登录状态来进行验证(比如从浏览器获取cookie信息放在请求header中等),这里我们介绍通过postman Interceptor插件来模拟登录状态,这样用户只需要正常调用登录接口后,其他接口便可直接调用,不用再单独考虑登录验证问题。
1、在postman7之前我们可以通过在chrome中安装Postman Interceptor插件,
如下图,在google的的网上应用商店中搜索postman便可找到该插件,直接点击安装即可。在这里插入图片描述
2、安装完成后可以在Interceptor中自行配置过滤规则,来针对Filter requests参数进行正则配置,如:配置baidu表示只拦截包括baidu的url( www.baidu.com)。默认的配置.*表示拦截所有请求,也可以使用默认配置不用修改。
在这里插入图片描述
3、在postman中开启Interceptor功能,如下:
加粗样式
通过上述配置便可模拟浏览器的登录状态。

但是本人最近在将postman升级到7.2.2时发现没有了Interceptor的小图标,后来发现postman中点击下图中的小图标同样可以模拟登录状态,参数配置这里不再详细描述
在这里插入图片描述

二、请求参数中签名的生成

本文按我们项目中实际的签名生成规则来描述,我们的签名规则是将所有参与签名的属性按照key值的ASCII码从小到大排序,然后追加秘钥,再进行MD5加密得到签名值sign,生成签名的具体步骤如下:
1、请求参数都按照名称ASCII码,升序排列(参数名称不允许相同)
2、如果参数值带有中文, 需要制定字符集编码为UTF-8
3、如果参数值为空,那么该参数不参与签名
4、密钥作为最后一个参数, 参数名为:secretKey 将请求参数按上述顺序用&拼接。 然后,用MD5算法,对待签名字符串进行加密, 生成的签名数据(32位小写字符), 即是参数中sign的值。

在Postman的pre-request script中编写具体的签名生成脚本:

// 签名脚本
console.log("request Data: " + request.data);
keys = Object.keys(request.data).sort()

var str = []
for(var p = 0; p < keys.length; p++) {
    if(keys[p] == "sign" || request.data[keys[p]] === "") {
        continue;
    }
    str.push(keys[p] + "=" + request.data[keys[p]]);
}
str.push("key=" + pm.environment.get("key"));
var sign = str.join("&");

pm.environment.unset("sign");
pm.environment.set("sign", CryptoJS.MD5(sign ).toString());
// 获取环境变量中的password
//var password = pm.environment.get("password");
//console.log("password: " + password)
//MD5加密
//var signStr = CryptoJS.MD5(password).toString();
//pm.environment.set("password", signStr);

注意:如在单个请求的Pre-request-Script中添加脚本,则只对该请求参数生效。如果一个Collection或Folder中的所有请求参数的处理逻辑一样则可以在Collection或Folder的Pre-request-Script中添加脚本。添加方法如下:
在这里插入图片描述
在这里插入图片描述
以上方式可完成对整个Collection或Folder的脚本添加。

参数获取
通过上述方式我们将sign设置为环境,然后在请求参数中使用{{sign}}即可获取参数值,注意,如果参数格式为json则需要在{{sign}}外添加引号,或者回报json转换异常
在这里插入图片描述

在这里插入图片描述
postman自身还为我们提供了几个随机参数,有需要的也可以自行研究,如下:
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值