• Postman预处理自动生成签名参数(sign)


    Postman预处理自动生成签名参数(sign)
    很多接口会有签名参数,为了防止被恶意篡改参数,所以对所有参数用一定规则排列后+盐再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[i].key] = queryParam[i].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); 
    1. 然后在业务接口的头信息中,用{{token}}方式从环境变量中获取token实际值。

    在这里插入图片描述

  • 相关阅读:
    Linux安装RabbitMQ3.8.7
    VS安装Resharper,使用IDEA风格的快捷键,还需修改的快捷键
    Spring Boot Starter开发
    windows安装redis集群
    spring为bean指定InitMethod和DestroyMethod的三种方法
    spring注入的方式总结
    bean运行时值注入
    CodeForces 1569C Jury Meeting
    CodeForces 1569B Chess Tournament
    CodeForces 1569A Balanced Substring
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/16012265.html
Copyright © 2020-2023  润新知