使用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 13 Java/Android
Spring Cache和EhCache实现缓存管理方式
Jun 15 Java/Android
JVM入门之类加载与字节码技术(类加载与类的加载器)
Jun 15 Java/Android
Java实现简易的分词器功能
Jun 15 Java/Android
Java数据结构之链表相关知识总结
Jun 18 Java/Android
SpringBoot 拦截器妙用你真的了解吗
Jul 01 Java/Android
InterProcessMutex实现zookeeper分布式锁原理
Mar 21 Java/Android
关于EntityWrapper的in用法
Mar 22 Java/Android
详解Flutter网络请求Dio库的使用及封装
Apr 14 Java/Android
Android 界面一键变灰 深色主题工具类
Apr 28 Java/Android
Android Studio实现简易进制转换计算器
May 20 Java/Android
SpringBoot详解自定义Stater的应用
Jul 15 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
德生PL330测评
2021/03/02 无线电
php基础知识:类与对象(1)
2006/12/13 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
网页常用特效代码整理
2006/06/23 Javascript
javascript中的几个运算符
2007/06/29 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
python logging模块的使用
2020/09/07 Python
公司清洁工岗位职责
2013/12/14 职场文书
委托书模板
2014/04/04 职场文书
反对邪教标语
2014/06/30 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
政工师工作总结2015
2015/05/26 职场文书
孔子观后感
2015/06/08 职场文书
九年级历史教学反思
2016/02/19 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python