使用Postman测试需要授权的接口问题

作者:攻城狮_正 时间:2022-10-18 15:14:23 

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在发送数据前先请求加密服务获取密文,再发送。然后处理返回结果,请求加密服务解密,就能实现接口测试了。

来源:https://juejin.cn/post/7109788100347297799

标签:Postman,测试,授权接口
0
投稿

猜你喜欢

  • javascript div 遮罩层封锁整个页面

    2024-06-09 01:20:09
  • TP3.2批量上传文件或图片 同名冲突问题的解决方法

    2024-05-03 15:29:55
  • 浅谈Python中eval的强大与危害

    2022-05-03 08:15:13
  • 浅谈pycharm下找不到sqlalchemy的问题

    2022-06-17 14:51:15
  • Linux下升级python和安装pip的详解

    2022-08-23 06:27:15
  • 解决TensorFlow模型恢复报错的问题

    2022-06-15 16:24:31
  • python代码如何注释

    2021-08-16 20:46:29
  • MySQL特定表全量、增量数据同步到消息队列-解决方案

    2024-01-24 04:36:47
  • asp如何对多个条件进行判断?

    2009-11-20 18:28:00
  • DevOps,CI,CD,自动化简述

    2022-06-22 06:47:27
  • Python 解析库json及jsonpath pickle的实现

    2021-09-10 00:27:14
  • php mysql获取表字段名称和字段信息的三种方法

    2023-11-18 22:47:26
  • asp实现在线人数统计代码

    2008-08-10 18:35:00
  • python 包之 Pillow 图像处理教程分享

    2022-02-22 01:22:48
  • python Pexpect模块的使用

    2023-01-23 20:54:58
  • 番茄的js表单验证类

    2008-01-07 13:53:00
  • asp开发中textarea常见问题

    2008-04-13 06:34:00
  • Python使用win32com.client的方法示例

    2021-03-22 14:32:48
  • Python OpenCV对本地视频文件进行分帧保存的实例

    2021-09-15 23:03:18
  • python实现简单的井字棋小游戏

    2022-06-30 10:48:05
  • asp之家 网络编程 m.aspxhome.com