51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 521|回复: 0
打印 上一主题 下一主题

分享Postman预处理自动生成签名参数

[复制链接]
  • TA的每日心情
    擦汗
    4 小时前
  • 签到天数: 1047 天

    连续签到: 5 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2023-3-31 13:02:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    很多接口会有签名参数,为了防止被恶意篡改参数,所以对所有参数用一定规则排列后+盐再MD5加密。
      有些开发可能配置了在测试环境暂时屏蔽签名,或者用一个通用签名。但其实完全可以在不破坏系统完整性的前提下,又能很轻松的让postman根据规则自动生成签名参数来进行测试。
      这2条语句可以分别获得body参数和url中的query参数。
      let queryParam = pm.request.url.query.members;
      let param = request.data;
      let key = "xxxxxxxxxxxx"; //签名Key
      try {
        let json = JSON.parse(param); //序列化JSON BODY
        param = json;
        }catch(err){
        //BODY不是JSON格式
        }
      //Get & 合并GET和POST参数
      for (let i in queryParam){
          param[queryParam.key] = queryParam.value;
      }
      //Post
      //取key
      var keys = [];
      for (let k in param){
          if (k == 'sign'){
              continue;
          }
          keys.push(k);

      }
      //排序
      keys.sort();
      //取value
      var kv = [];
      for (let k of keys){
          kv.push(k + '=' + encodeURIComponent(param[k])) //urlencode编码

      }
      //拼接
      var sign = kv.join('&');
      sign = sign + key;
      console.log(sign);
      sign = CryptoJS.MD5(sign).toString();
      console.log(sign);
      //设置环境变量
      postman.setEnvironmentVariable("sign", sign);


      PS: 不同公司、不同接口规则不同,例如不需要urlencode、不需要排序的请自行修改脚本再用{{sign}}从环境变量中取出sign值。
      成功请求
      这段脚本兼容GET参数、以及表单形式的BODY和JSON形式的BODY。
      保持登录状态
      通过设置环境变量,我们可以把登录接口返回的认证信息存起来,之后其他接口可以直接从环境变量中获取。达到保持登录状态的效果。
      先在登录接口的Tests中获取token参数并放到环境变量中。

      //设置token
      var responeData = JSON.parse(responseBody); //把响应结果转为JSON对象
      pm.environment.set("token", responeData.data.token); //从响应结果JSON对象中获取到token参数,并放到环境变量
      console.log("token: " + responeData.data.b_token);


      然后在业务接口的头信息中,用{{token}}方式从环境变量中获取token实际值。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 13:29 , Processed in 0.065686 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表