zoukankan      html  css  js  c++  java
  • Postman之token动态获取

    目前项目涉及PC及APP端接口共用问题,后台接口给登陆后的用户设置了一个token,接口调用时请求头的参数值必须要动态生成,为了解决这个问题,查看Postman API文档,配置了可以方便后端开发者的Tests脚本,如果你需要,请按下面方式配置。

    用户登陆

    用户登陆页面的请求头参数为固定不变,如图所示


    当填写正确的用户名和密码时,系统用返回如下图的数据,里面携带token的值,如图所示


    在用户登陆测试接口页面,在点击Tests,在里面添加下面代码,如图所示:

    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    var data = JSON.parse(responseBody);
    
    //key值
    var key = '要加密的Key';
    //current-timestamp
    var currentTimestamp =  new Date().getTime().toString();
    //nonce-str
    var nonceStr = getStr(32);
    
    function getStr(len){
        len = len || 32;
    	var chars = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    	var maxPos = chars.length;
    	var s = '';
    	for (let i = 0; i < len; i++) {
    		s += chars.charAt(Math.floor(Math.random() * maxPos));
    	}
    	return s;
    }
    
    //token
    var token = data.data.token;
    //拼接加密字符串
    var signStr = token + currentTimestamp.substring(0,10) + nonceStr.substring(0,16) + key;
    var CryptoJS = require('crypto-js');
    var lpSign = CryptoJS.MD5(signStr).toString();
    
    // 设置环境变量token,供后面的接口引用
    pm.environment.set("token", data.data.token);
    // 设置环境变量current-timestamp,供后面的接口引用
    pm.environment.set("current-timestamp", currentTimestamp);
    // 设置环境变量current-timestamp,供后面的接口引用
    pm.environment.set("nonce-str", nonceStr);
    // 设置环境变量current-timestamp,供后面的接口引用
    pm.environment.set("lp-sign", lpSign);</pre> 
    

    配置环境变量,因为每个接口都涉及请求头,所有我们用不用Postman中的环境变量,来实现,请求头动态更新
    步骤如下
    1、 打开设置

    2、 添加新环境

    3、 添加环境变量


    保存环境变量,在调用其它接口时,先选择环境,如下图所示

    当Postman调用登陆接口时,会自动把缺少的环境变量值都添充完整,如下图所示

    调用其它接口时,请求头引用环境变量,具体语法如下图所示

    这样我们以后,调用其它接口,就不用每次都修改请求头数据,只要引用环境变量就完美解决问题。

    注:老版本Postman有问题,本测试版本为6.5.2

  • 相关阅读:
    3D开发基础知识和简单示例
    六大设计原则详解
    InnoSetup 根据选择的安装语言显示不同语言的(协议)License和更新说明
    ASP.NET Core如何在.NET Core中构建和运行时禁用浏览器启动
    DevExpress 设置DateEdit显示年月季度
    DevExpress设置单元格不可编辑,选单元格则选中一行
    sql server数据库只有mdf文件,没有ldf,如何加载
    .net core 整洁架构入门
    在ASP.NET Core使用Entity Framework Core的日志显示sql语句
    在ASP.NET Core使用Entity Framework Core的日志
  • 原文地址:https://www.cnblogs.com/loveyous/p/9950070.html
Copyright © 2011-2022 走看看