使用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整合Mybatis的全过程
Jun 28 Java/Android
Spring Boot两种全局配置和两种注解的操作方法
Jun 29 Java/Android
详解Java ES多节点任务的高效分发与收集实现
Jun 30 Java/Android
每日六道java新手入门面试题,通往自由的道路
Jun 30 Java/Android
SpringBoot 拦截器妙用你真的了解吗
Jul 01 Java/Android
spring cloud 配置中心客户端启动遇到的问题
Sep 25 Java/Android
springmvc直接不经过controller访问WEB-INF中的页面问题
Feb 24 Java/Android
SpringBoot+Redis实现布隆过滤器的示例代码
Mar 17 Java/Android
Netty客户端接入流程NioSocketChannel创建解析
Mar 25 Java/Android
零基础学java之带参数以及返回值的方法
Apr 10 Java/Android
java开发双人五子棋游戏
May 06 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的可变变量名需要的注意的问题
2013/06/20 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
字符串的replace方法应用浅析
2011/12/06 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
用python登录Dr.com思路以及代码分享
2014/06/25 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
传播学毕业生求职信
2013/10/11 职场文书
请假条范文大全
2014/04/10 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
综合实践活动总结
2014/05/05 职场文书
培训研修方案
2014/06/06 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
超市督导岗位职责
2015/04/10 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL