使用Postman测试需要授权的接口问题


Posted in Java/Android onJune 21, 2022

Postman是一款免费的http模拟请求工具,常用来测试开发接口。实际场景中,很多接口是需要授权才能使用。这就需要Postman获取授权,把返回的token保存,在调用其他接口时连同token一起传递。

我所在的项目基于spring全家桶,正常流程是:调用获取验证码接口 -> 登录接口 -> 调用业务接口 。

  • 新建一个登录请求

使用Postman测试需要授权的接口问题

"{{参数名}}"代表Postman的环境变量 captchaKey 调用获取验证码返回 captchaCode 验证码,因为是测试环境,固定8888

  • 发送请求前执行代码

切换到 Pre-request Script ,编写请求验证码接口脚本

var captchaApi = pm.environment.get("sa-gateway-host") + "/sa-auth/captcha";
pm.sendRequest(captchaApi, function (err, response) {
    //获取返回值
    var responseBody =JSON.parse(response.text());
    //判断返回值是否有data参数
    if (responseBody.data) {
        //如果有则此次验证通过
        tests["first has data"] = true;
        //获取需要的参数
        var captchaKey = responseBody.data.captchaKey;
        //打印获取的参数
        console.log("response.data --> " + captchaKey); 
        //将值写入当前选中的环境中 变成环境变量 
        postman.setEnvironmentVariable("captchaKey", captchaKey);
    }
});

使用Postman测试需要授权的接口问题

  • 登录后保存token

切换到 Tests ,编写请求登录后的处理脚本

//获取返回值
var response =JSON.parse(responseBody);
//判断返回值是否有data参数
if (response.access_token) {
  //如果有则此次验证通过
  tests["first has data"] = true;
  //获取需要的参数
  var access_token = response.access_token;
  //打印获取的参数
  console.log("access_token --> " + access_token); 
  //将值写入当前选中的环境中 变成环境变量 
  postman.setEnvironmentVariable("header-authorization", "Bearer "+access_token);
}

使用Postman测试需要授权的接口问题

到这里,Postman模拟登录请求完成。

脚本基于javascript语法,对于web开发者非常简单。

Postman专用函数和更多用法参考:learning.postman.com/docs/writin…

测试

发送请求,在Postman控件台有输出日志

使用Postman测试需要授权的接口问题

此时变量 captchaKey 和 header-authorization 的值是接口返回的值。

再新建一个接口,在header中传入登录后返回的授权信息。

使用Postman测试需要授权的接口问题

不同系统的接口设计不一样。我的项目是在header中加入 Authorization 字段传递授权信息。

执行接口请求,返回成功。

使用Postman测试需要授权的接口问题

举一反三

很多APP的接口会对数据加密。新建一个加密服务,用脚本使Postman在发送数据前先请求加密服务获取密文,再发送。然后处理返回结果,请求加密服务解密,就能实现接口测试了。

到此这篇关于用Postman测试需要授权的接口的文章就介绍到这了,更多相关Postman授权的接口内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Java/Android 相关文章推荐
spring项目中切面及AOP的使用方法
Jun 26 Java/Android
SpringBoot整合JWT的入门指南
Jun 29 Java/Android
Java基础之线程锁相关知识总结
Jun 30 Java/Android
Spring实现内置监听器
Jul 09 Java/Android
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
Jul 26 Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 Java/Android
Java生成日期时间存入Mysql数据库的实现方法
Mar 03 Java/Android
Java中Dijkstra(迪杰斯特拉)算法
May 20 Java/Android
Android开发手册Chip监听及ChipGroup监听
Jun 10 Java/Android
Java获取字符串编码格式实现思路
Sep 23 Java/Android
Java结构型设计模式之组合模式详解
Sep 23 Java/Android
springboot集成redis存对象乱码的问题及解决
Jun 16 #Java/Android
SpringBoot使用AOP实现统计全局接口访问次数详解
Jun 16 #Java/Android
Java中的Kotlin 内部类原理
Jun 16 #Java/Android
Spring Security动态权限的实现方法详解
Java实现注册登录跳转
Jun 16 #Java/Android
Java界面编程实现界面跳转
springboot实现string转json json里面带数组
Jun 16 #Java/Android
You might like
剖析 PHP 中的输出缓冲
2006/12/21 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
基于php判断客户端类型
2016/10/14 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
关于python中导入文件到list的问题
2020/10/31 Python
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
用友笔试题目
2016/10/25 面试题
实习求职信
2013/12/01 职场文书
自我评价格式
2014/01/06 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
Python实现自动玩连连看的脚本分享
2022/04/04 Python
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS