解决postman接口自动化测试中登录后401权限问题

news2024/11/25 8:13:15

大家在做接口自动化测试的时候,碰到有登录的系统应该都会遇到401权限的问题,下面我来说下如何解决这个问题。

 

首先需要了解问题的本质,是要解决什么?这样我们才好对症下药,报401是因为用户在登录的时候,服务器会返回cookie,cookie是个校验机制,可以让服务器知道用户是谁,当然也还有什么token之类的。登录后如果我要打开添加角色页面,这时候浏览器就会自动带上这个cookie给服务器,这样我们就能顺利打开这个页面。但是我们在用postman做测试的时候,登录后再跳到添加角色页面是没有带上这个cookie的,所以服务器不认识你是谁,没办法认证,所以才会报401。

好了,知道了问题的本质了,我们就要解决 ,我们要做的就是获取服务器产生的这个cookie,并把这个cookie给到添加角色页面的请求头里,这样服务器就可以认识你了。

ps:其实不管在postman还是在jmeter中,只要知道解决问题的思路,问题都会很轻松的解决了。这两个工具只是解决方式不同,原理都是一样的。

在这里我以token为例,先在登录接口的tests功能中添加下面一行代码:

if(responseCode.code === 200 && responseBody.has("token")){

    tests["login is ok"] = true;

    var jsonData = JSON.parse(responseBody);

    postman.setEnvironmentVariable("token",jsonData.data.token);

}else{

    tests["login"] = false;

}

这行代码的意思是:首先判断登录是否成功和响应消息体中是否包括token,登录成功后会返回一个token值,如果都成功之后将响应消息体的格式转化为json格式,赋值给jsonData,然后取jsonData中data部分中的token给变量token,这样我们就可以得到token了。
 

注意:这里jsonData.data.token要依接口返回的情况而定,不要照抄,有的token值不一定在data中,以{}为分界点,这个token的名字也可能不一样,依照接口返回的token的名字。

 

ps:postman中test功能可以用来做自动化测试,目前支持的脚本语言为JavaScript。

然后就是把刚刚登录生成的那个token给到请求头里,点击你登录后要跳转的接口,我这里是添加角色接口,进入header模块中,添加一行,分别输入Authorization{{token}}。如果还要跳转到其他接口,只需要在请求头里添加这行就可以了。

 最后点击集合,run下,就不报错了,问题也就解决了。我们可以看到在添加角色的请求头文件中,这个token就是登录后生成的token。

注意:这里jsonData.data.token要依接口返回的情况而定,不要照抄,有的token值不一定在data中,以{}为分界点,这个token的名字也可能不一样,依照接口返回的token的名字。

 ps:postman中test功能可以用来做自动化测试,目前支持的脚本语言为JavaScript。

 然后就是把刚刚登录生成的那个token给到请求头里,点击你登录后要跳转的接口,我这里是添加角色接口,进入header模块中,添加一行,分别输入Authorization{{token}}。如果还要跳转到其他接口,只需要在请求头里添加这行就可以了。

  最后点击集合,run下,就不报错了,问题也就解决了。我们可以看到在添加角色的请求头文件中,这个token就是登录后生成的token。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/718795.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊云科技让AI开发速度更快,门槛更低

过去只有大型科技公司、政府机构和大学才有能力和时间、金钱去部署生成式AI能力。近二十年来,云服务把计算的门槛降低了。亚马逊云科技全球产品副总裁Matt Wood博士表示:“我们希望在生成式AI上做同样的事,把技术提供到每个开发者和商业用户的…

kaggle免费服务器全攻略

1. kaggle服务器16G显卡一周40小时. 所以我们直接干一堆谷歌账号即可 2. 谷歌账号的注册: 我们需要FQcolab for windows可以做到. 然后我们注册好账号后.我们注册4个账号. 注册方法. 打开chrome 点最下面的添加按钮.然后一直下一步即可.无脑注册. 3. 为Chrome多账户添加单独的…

机器人制作开源方案 | 立式铣床模型

1. 功能说明 铣床主要是指用铣刀在工件上加工多种表面的机床,本文示例将通过程序控制模拟铣床的运动效果--模拟铣床进行加工时各个结构的运动方式。铣床的运动主要包括:主轴的旋转运动、立铣头的上下进给运动、工作台的前后左右进给运动。 2. 结构说明 该…

期权专业知识常用术语有哪些?虚值期权和实值期权怎么选择合理的执行价

【1】美式期权:每个交易日都可以行权的期权 【2】欧式期权:只有在到期日才可以执行的期权 【3】平值期权:内在价值为零或极小的期权,或行权价格等于或接近于标的物合约市场价格的期权。通常是指行权价格最接近标的合约市场价格的期…

JavaEE语法之第二章、多线程(初阶三)

目录 一、多线程带来的风险-线程安全 (重点) 1.1观察线程不安全 1.2线程安全的概念 1.3线程不安全的原因 1.3.1抢占式执行(进程的随机调度) 1.3.2多个线程修改同一个变量 1.3.3内存的可见性 1.3.4原子性 1.3.5指令重排序 二、解决之前的线程不…

Spring Boot 中的 @Query 注解是什么,原理,如何使用

Spring Boot 中的 Query 注解是什么,原理,如何使用 在 Spring Boot 中,Query 注解是一个非常常用的注解,用于定义自定义查询语句。本文将介绍 Query 注解的作用、原理和使用方法。 1. Query 注解的作用 在 Spring Boot 中&#…

【论文精读】《Classifying User Activities in the Encrypted WeChat Traffic》

Classifying User Activities in the Encrypted WeChat Traffic Authors:Chengshang Hou,Junzheng Shi,Cuicui Kang,Zigang Cao,Xiong Gang Journal:2018 IEEE 37th International Performance Computing and Communications Conference (IPCCC) (2018) 摘要 加密移动应用程序…

【算法】从记忆化搜索到递推——动态规划入门

文章目录 笔者说:我们为什么要学记忆化搜索?预备知识例题:198. 打家劫舍记忆化搜索 相关题目练习70. 爬楼梯记忆化搜索dp 746. 使用最小花费爬楼梯记忆化搜索dp 2466. 统计构造好字符串的方案数记忆化搜索dp 213. 打家劫舍 II记忆化搜索dp 笔…

unity + python socket通信,自定义数据包

unity和python相互之间通过socket通信来发送自定义数据包是一个利用unity构建场景和通过python来做数据处理的方式,能够有效的利用两种不同语言的优势。 我已经将对应的操作封装为对应的一个模块,SocketTools.cs,我们先来看一下具体的代码用…

7.3.2 【Linux】磁盘分区: gdisk/fdisk

MBR 分区表使用 fdisk 分区, GPT 分区表使用 gdisk 分区。 gdisk 通过lsblk或blkid先找到磁盘,再用parted /dev/xxx print来找出内部的分区表类型,之后采用gdisk或fdisk来操作系统。上表中可以发现 gdisk 会扫描 MBR 与 GPT 分区表&#xff…

【Arduino】超声波实验

4个端: Vcc : 5V电源Trig : 控制端(触发)Echo : 接收端(回声)Gnd : 接地端 相关参数 : 工作电流 : 15mA工作电压 : 5V工作频率 &am…

Linux常用命令——expr命令

在线Linux命令查询工具 expr 一款表达式计算工具 补充说明 expr命令是一款表达式计算工具,使用它完成表达式的求值操作。 expr的常用运算符: 加法运算:减法运算:-乘法运算:\*除法运算:/求摸&#xff0…

【Android】解决 build项目报错manifest merge fail XXX

报错图片: 解决方式: 找到 AndroidManifest.xml文件,找到找到文件的上一级,加上android:exported“true” 作用:Android:exported true 在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启…

牛客网基础语法111~120题

牛客网基础语法111~120题😘😘😘 💫前言:今天是咱们第十一期刷牛客网上的题目。 💫目标:能使用数组来解决问题。 💫鸡汤:一张纸对折就能站立。先干为敬,大家随…

自定义MVC框架实现增删改查

目录 一、环境搭建 二、导入配置文夹 1.中央控制器xml 2.增删改配置文件 3.导入工具类 三、编写后端代码 1. 通用增删改查 2. BookDao类 3. book实现增删改查类 4. 分页助手类 四、编写前端代码 1. 数据显示主界面 2. 默认运行显示所有数据servlet 3. 新增、修改共用…

解决uni-app微信小程序底部输入框,键盘弹起时页面整体上移问题

存在问题 做了一个记录页面(类似单方聊天页),输入框在底部;当弹出键盘时,页面整体上移,页面头信息会消失不见 需要实现效果: 比如一个记录页面,需要在键盘弹出时: 底…

解析ASEMI代理海矽美快恢复二极管SFP6012A的性能与应用

编辑-Z 在电子元件领域,快恢复二极管是一种重要的半导体器件,它在电路中起到关键的保护和控制作用。今天,我们将重点介绍一款优秀的快恢复二极管——SFP6012A,深入探讨其性能特点和应用领域。 一、SFP6012A快恢复二极管的性能特点…

chatglm docker镜像,一键部署chatglm本地知识库

好久没有写文章了,今天有空,记录一下chatglm本地知识库的docker镜像制作过程。 核心程序是基于“闻达”开源项目,稍作改动。 制作镜像: docker tag chatglm:v1 ch1949/chatglm:latest docker push ch1949/chatglm:latest 使用 …

性能测试小白‘壁咚’~~~

很多时候,我们都知道软件有黑白盒测试,但往往还遗漏掉了一个性能测试。 性能测试种类: 负载测试压力测试并发测试配置测试可靠性测试容量测试 1、负载测试 (1)定义 负载测试是指逐步增加系统负载,测试系统…

NSS [SWPUCTF 2021 新生赛]easy_md5

NSS [SWPUCTF 2021 新生赛]easy_md5 先看题目,md5弱比较,可以0e,数组,或者强碰撞。 payload: GET: ?name[]1 POST:password[]7