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

大家在做接口自动化测试的时候,碰到有登录的系统应该都会遇到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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Postman 是一个流行的 API 开发工具,它可以帮助开发人员更方便地测试、开发和文档化 API。 以下是使用 Postman 进行接口测试的简单教程: 1. 下载并安装 Postman 首先,你需要下载并安装 Postman。你可以从官方网站下载 Postman,也可以从 Chrome 应用商店下载 Postman 插件。 2. 创建一个新集合 在 Postman ,你可以将相关的请求组织到一个集合。要创建一个新的集合,请点击左侧的“New”按钮,然后选择“Collection”,输入集合名称并点击“Create”按钮。 3. 添加一个请求 在 Postman ,你可以创建多个请求并添加到集合。要创建一个新的请求,请点击左侧的“New”按钮,然后选择“Request”。 在弹出的对话框,输入请求的名称和 URL。在请求参数,你可以添加请求头、查询参数、表单数据等。在请求体,你可以添加 JSON、XML、HTML 或文本等数据。 4. 发送请求并查看响应 当你完成了请求的设置后,你可以点击“Send”按钮发送请求。Postman 将向指定的 URL 发送请求,并显示响应结果。 你可以在响应标签查看响应内容,包括响应头、响应体和响应状态码。 5. 使用测试脚本进行测试 Postman 还支持使用 JavaScript 编写测试脚本来验证 API 的响应。你可以在请求添加测试脚本,在响应返回后自动运行该脚本。 例如,你可以编写一个简单的测试脚本来验证响应是否包含预期的数据: ``` pm.test("Response should contain expected data", function () { var jsonData = pm.response.json(); pm.expect(jsonData.data).to.eql("Hello World"); }); ``` 在这个测试脚本,我们使用 `pm.response.json()` 方法来获取响应的 JSON 数据,并使用 `pm.expect()` 方法来验证数据是否符合预期。 6. 共享集合 Postman 还支持共享集合,你可以将你的 API 集合分享给其他人。要共享集合,请点击集合名称旁边的“三个点”按钮,然后选择“Share Collection”。 在弹出的对话框,你可以设置集合的可见性和权限。你可以将集合链接发送给其他人,或将集合发布到 Postman 相关的社区。 这就是使用 Postman 进行接口测试的简单教程。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值