使用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 相关文章推荐
Java用自带的Image IO给图片添加水印
Jun 15 Java/Android
springcloud之Feign超时问题的解决
Jun 24 Java/Android
解决SpringBoot跨域的三种方式
Jun 26 Java/Android
浅谈自定义校验注解ConstraintValidator
Jun 30 Java/Android
总结Java对象被序列化的两种方法
Jun 30 Java/Android
详解Java ES多节点任务的高效分发与收集实现
Jun 30 Java/Android
Java 在生活中的 10 大应用
Nov 02 Java/Android
Java 在线考试云平台的实现
Nov 23 Java/Android
Android超详细讲解组件ScrollView的使用
Mar 31 Java/Android
详解Android中的TimePickerView(时间选择器)的用法
Apr 30 Java/Android
Spring IOC容器Bean的作用域及生命周期实例
May 30 Java/Android
前端与RabbitMQ实时消息推送未读消息小红点实现示例
Jul 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
mysql 字段类型说明
2007/04/27 PHP
几个php应用技巧
2008/03/27 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
js 蒙版进度条(结合图片)
2010/03/10 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
JS随机密码生成算法
2019/09/23 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
Python中暂存上传图片的方法
2015/02/18 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
联想台湾官网:Lenovo TW
2018/05/09 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
模具设计与制造专业应届生求职信
2013/10/18 职场文书
年度考核自我鉴定
2013/11/09 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
2016入党心得体会范文
2016/01/06 职场文书
记一次Mysql不走日期字段索引的原因小结
2021/10/24 MySQL
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS