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

用户登陆

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



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



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

  1. pm.test("Status code is 200", function () {
  2. pm.response.to.have.status(200);
  3. });
  4. var data = JSON.parse(responseBody);
  5. //key值
  6. var key = '要加密的Key';
  7. //current-timestamp
  8. var currentTimestamp = new Date().getTime().toString();
  9. //nonce-str
  10. var nonceStr = getStr(32);
  11. function getStr(len){
  12. len = len || 32;
  13. var chars = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  14. var maxPos = chars.length;
  15. var s = '';
  16. for (let i = 0; i < len; i++) {
  17. s += chars.charAt(Math.floor(Math.random() * maxPos));
  18. }
  19. return s;
  20. }
  21. //token
  22. var token = data.data.token;
  23. //拼接加密字符串
  24. var signStr = token + currentTimestamp.substring(0,10) + nonceStr.substring(0,16) + key;
  25. var CryptoJS = require('crypto-js');
  26. var lpSign = CryptoJS.MD5(signStr).toString();
  27. // 设置环境变量token,供后面的接口引用
  28. pm.environment.set("token", data.data.token);
  29. // 设置环境变量current-timestamp,供后面的接口引用
  30. pm.environment.set("current-timestamp", currentTimestamp);
  31. // 设置环境变量current-timestamp,供后面的接口引用
  32. pm.environment.set("nonce-str", nonceStr);
  33. // 设置环境变量current-timestamp,供后面的接口引用
  34. pm.environment.set("lp-sign", lpSign);</pre>

配置环境变量,因为每个接口都涉及请求头,所有我们用不用Postman中的环境变量,来实现,请求头动态更新

步骤如下

1、 打开设置

2、 添加新环境

3、 添加环境变量



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

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

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

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

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

Postman之token动态获取的更多相关文章

  1. Postman接口测试动态传参——动态获取token值

    上午刚学会jmeter动态传参,下午研究了下postman也知道怎么动态获取token了. 主要就是第1行和第2行代码,第3行加上是希望Test Results有个返回值,如果不加第3行运行成功后也看 ...

  2. Jmeter接口测试动态传参——动态获取token值

    先添加一个线程组,然后在线程组下添加HTTP Request 环境变量: 线程组下添加User Defined Variables 调用变量:${变量名} 添加结果树: 记录登录后的token: 获取 ...

  3. 动态获取爱奇艺上传视频mp4格式url地址

    有时候,在工作中有些客户需要用到视频,我们大家都知道视频是非常的耗费流量的,因此,如果因为项目要求客户单独买台视频服务器是非常划不来的.那么将视频上传到优酷,爱奇艺等视频网站来托管那是一件很好的解决方 ...

  4. 使用 Postman 取得 Token 打另一隻 API

    使用 Postman 取得 Token 打另一隻 API Spring MVC token 统一校验和user 信息自动获取 使用token和SpringMVC来实现安全的RESTFul接口 spri ...

  5. postman带Token测试接口

    首先打开postman.是这样的界面 我们的需求是这样的.实现登录之后返回token.然后请求其他接口时在header头中带上token信息. OK.接下来我们这样操作: 现在登录没有操作token. ...

  6. 使用vue-element-admin框架从后端动态获取菜单

    1.前言 ​ vue-element-admin是一个纯前端的框架,左侧菜单是根据路由生成的.实际开发中经常需要根据当前登陆人员的信息从后端获取菜单进行展示,本文将详细介绍如何实现该功能. 2.详解 ...

  7. js动态获取子复选项并设计全选及提交

    在做项目的时候,会遇到根据父选项,动态的获取子选项,并列出多个复选框,提交时,把选中的合并成一个字符提交后台 本章将讲述如何通过js控制实现该操作: 1:设计父类别为radio,为每一个radio都加 ...

  8. 日志系统实战(二)-AOP动态获取运行时数据

    介绍 这篇距上一篇已经拖3个月之久了,批评自己下. 通过上篇介绍了解如何利用mono反射代码,可以拿出编译好的静态数据.例如方法参数信息之类的. 但实际情况是往往需要的是运行时的数据,就是用户输入等外 ...

  9. Js动态获取iframe子页面的高度////////////////////////zzzz

    Js动态获取iframe子页面的高度   Js动态获取iframe子页面的高度总结 问题的缘由 产品有个评论列表引用的是个iframe,高度不固定于是引发这个总结. 方法1:父级页面获取子级页面的高度 ...

随机推荐

  1. opencv roi resize 会导致内存拷贝产生子图像

    opencv roi区域 resize之后,roi的引用已不是原图的引用,而是内存拷贝产生的子图像. http://blog.csdn.net/qianqing13579/article/detail ...

  2. asp.net viewstate 数据过大 导致错误

    当在ViewState中放入dataSet的数据量比较大的时候,当再点页面上的控件时,不会返回到后台,并且会出现如下错误: 或者是上面的12030改成500的错误. --解决方法:Viewstate绑 ...

  3. C语言内存对齐对则

    这篇文章讲的非常好  :  http://blog.csdn.net/hairetz/article/details/4084088 用空间换时间, 规则 : 每个数据成员存储的起始位置都要是它的整数 ...

  4. Python学习-list操作

    Python列表(list)操作: 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置 ...

  5. Java集合总结之Collection整体框架

    前段时间一直在忙一个物联网的项目,所以Java的学习一直搁置,从今天开始继续学习!望大家多提宝贵意见! java.util包中包含了一些在Java 2中新增加的最令人兴奋的增强功能:类集.一个类集(c ...

  6. 监听文本框输入oninput和onpropertychange事件

    前端页面开发的很多情况下都需要实时监听文本框输入,比如腾讯微博编写140字的微博时输入框动态显示还可以输入的字数.过去一般都使用onchange/onkeyup/onkeypress/onkeydow ...

  7. svn服务器端回退版本 (转)

    由于误操作,不小心将错误的代码提交到了svn上,于是想在服务器上撤销本次提交,经过尝试,发现进行以下步骤的操作即可彻底删除本次提交: 1.首先找到本次提交后生成的版本号,例如为r224. 2.登录到s ...

  8. (转)android项目用到的公共类方法

    /*** 直接下载图片并加载至控件(非异步加载)* * @param activity* @param urlpath*            图片下载路径* @param imageView*   ...

  9. linux下PS1命令提示符设置

    linux下PS1命令提示符设置 在此文件最后一行添加:vim /etc/profileexport PS1='[\u@\h \W]\$ '   #这里必须用单引号.     \d :代表日期,格式为 ...

  10. debian的bt下载工具

    sudo apt install qbittorrent 如果觉得下载慢,可以选择下载的文件,在trackers部分修改 https://github.com/ngosang/trackerslist