思路

请求需要登录授权的接口,就意味着你要传token给接口,所以请求接口(要测试的接口)之前就要先获取token,因为登录成功后服务端才会返回token,而token又设置了时效,所以每次请求接口(要测试的接口)前最好能自动获取到最新的token,那么只能每次请求需要登录授权的接口之前先请求登录接口,这样才能保证每次获取到最新的token。获取到token后再请求需要登录授权的接口。

步骤

  1. 配置环境变量token
    在这里插入图片描述

  2. 请求接口界面authorization的类型选择bearer token,取环境变量token的值,写法如图所示:
    在这里插入图片描述
    如果还需要传其它参数,则根据不同请求方式在不同的地方设置参数值,例如请求方式为”post“,则在body内设置好参数,如图所示:
    在这里插入图片描述

  3. 在pre-request script 中写JS脚本,访问登录接口,获取token,再赋值给环境变量”token“,具体参考以下脚本代码

//构造登录请求
const loginRequest = {
  url: 'http://ip地址/project_name/manage/login',
  method: 'POST',
  header: 'Content-Type: application/json',  //注意要在Header中声明内容使用的类型
  body: {
    mode: 'raw',  // 使用raw(原始)格式
    raw: JSON.stringify({ account:'sys',password:'123456' }) //要将JSON对象转为文本发送
  }
};

//发送请求
pm.sendRequest(loginRequest, function (err, response) {
    if(err){//err返回null,则对应的boolean值是false
        console.log(err);
    }else{
        // console.log(err);
        // console.log(response.text());
        var jsonData = response.json();//返回json对象
        console.log("jsonData",jsonData);//赋值给jsonData,再打印输出到控制台
        var token = jsonData.data.token;//jsonData的data属性也是个json对象,该对象有token属性
        console.log("token",token);
        // console.log("textData",response.text())
        pm.environment.set("token", token);//赋值给环境变量token
    }
});


登录密码如果要加密怎么办

 var password = pm.environment.get("password");
 var md5Password= CryptoJS.MD5(password).toString();//使用MD5()方法对变量password的内容加密,然后转成字符串
 // pm.environment.set("password",md5Password);//加密后的密码字符串赋值给环境变量password

 //构造登录请求
 const loginRequest = {
  url: 'https://www.xxx.com/xxx/manage/login',
  method: 'POST',
  header: 'Content-Type: application/json',  //注意要在Header中声明内容使用的类型
  body: {
    mode: 'raw',  // 使用raw(原始)格式
    raw: JSON.stringify({ account:'admin',password:md5Password}) //要将JSON对象转为文本发送
  }
};

//发送请求
pm.sendRequest(loginRequest, function (err, response) {
    if(err){//err返回null,则对应的boolean值是false
        console.log(err);
    }else{
        // console.log(err);
        // console.log(response.text());
        var jsonData = response.json();//返回json对象
        console.log("jsonData",jsonData);//赋值给jsonData,再打印输出到控制台
        var token = jsonData.data.token;//jsonData的data属性也是个json对象,该对象有token属性
        console.log("token",token);
        // console.log("textData",response.text())
        pm.environment.set("token", token);//赋值给环境变量token
    }
});


Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐