使用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实践之抽象工厂模式
Jun 18 Java/Android
jackson json序列化实现首字母大写,第二个字母需小写
Jun 29 Java/Android
每日六道java新手入门面试题,通往自由的道路
Jun 30 Java/Android
idea 在springboot中使用lombok插件的方法
Aug 02 Java/Android
SpringBoot整合RabbitMQ的5种模式实战
Aug 02 Java/Android
Jpa Specification如何实现and和or同时使用查询
Nov 23 Java/Android
Netty分布式客户端接入流程初始化源码分析
Mar 25 Java/Android
Java GUI编程菜单组件实例详解
Apr 07 Java/Android
Java 关于String字符串原理上的问题
Apr 07 Java/Android
Elasticsearch Recovery 详细介绍
Apr 19 Java/Android
Java服务调用RestTemplate与HttpClient的使用详解
Jun 21 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
如何开始收听短波广播
2021/03/01 无线电
改造一台复古桌面收音机
2021/03/02 无线电
discuz目录文件资料汇总
2014/12/30 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
简述php环境搭建与配置
2016/12/05 PHP
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
python查询mysql,返回json的实例
2018/03/26 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
Django-imagekit的使用详解
2020/07/06 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
毕业实习评语
2014/02/10 职场文书
户外拓展活动方案
2014/02/11 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
2016年父亲节寄语
2015/12/04 职场文书
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python