使用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 将PPT幻灯片转为HTML文件的实现思路
Jun 11 Java/Android
解决SpringBoot跨域的三种方式
Jun 26 Java/Android
总结Java对象被序列化的两种方法
Jun 30 Java/Android
java基础——多线程
Jul 03 Java/Android
Spring Boot 整合 Apache Dubbo的示例代码
Jul 04 Java/Android
JAVA API 实用类 String详解
Oct 05 Java/Android
深入解读Java三大集合之map list set的用法
Nov 11 Java/Android
springboot应用服务启动事件的监听实现
Apr 06 Java/Android
Elasticsearch Recovery 详细介绍
Apr 19 Java/Android
带你了解Java中的ForkJoin
Apr 28 Java/Android
Android基础入门之dataBinding的简单使用教程
Jun 21 Java/Android
maven 解包依赖项中的文件的解决方法
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
十天学会php之第三天
2006/10/09 PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
通过修改referer下载文件的方法
2008/05/11 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
jupyter安装小结
2016/03/13 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
网络体系结构及协议的定义
2014/03/13 面试题
旅游管理毕业生自荐信范文
2014/03/19 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
OpenCV-Python实现油画效果的实例
2021/06/08 Python
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android