前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python接口测试之401错误的分析和解决(十六)

python接口测试之401错误的分析和解决(十六)

作者头像
无涯WuYa
发布2018-10-25 15:58:00
5.8K0
发布2018-10-25 15:58:00
举报
文章被收录于专栏:Python自动化测试

在接口的测试中,经常会遇到客户端向服务端发送一个请求,服务端返回401的错误,那么今天本文章就来说明在接口测试中如何分析以及解决该问题。

我们知道在HTTP返回的状态码中,401错误表示的是被请求的页面需要用户名和密码。401的错误详细的可以描述为:客户端发送请求抖到服务端,页面需要验证服务端会返回401的错误,见如下的错误信息:

401 UNAUTHORIZED

Headers
代码语言:javascript
复制
Content-Type: application/jsonWWW-Authenticate: Basic realm="Authentication Required"Content-Length: 37Server: Werkzeug/0.11.13 Python/2.7.12Date: Wed, 14 Mar 2018 14:57:24 GMT
代码语言:javascript
复制
{  "error": "Unauthorized access"}

依据错误的信息可以获取到,发送的请求需要有通过HTTP的认证的认证信息,如果在浏览器中访问,会直接弹出需要输入用户名和密码的弹出框,见截图:

那么在HTTP的认证中,经常会被使用到认证方式分别是BASIC认证和DIGEST认证,我们具体来看BASIC的认证方式是一种流行,行业标准的身份验证方式,是在HTTP1.0中指定。主要是指使用用户ID和密码使用Base64编码标准进行编码,并通过HTTP进行传属,只有当用户ID和密码有效时,服务器才允许用户访问。

在我们的案例中,使用的认证方式是BASIC的认证方式,那么在客户端向服务端发送请求的时候,带上用户信息,再次请求可以成功。在postman中的Basic auth指定用户名和密码,见请求成功的信息:

Response (20.345s) - http://localhost:5000/hotel/username/

200 OK

Headers
代码语言:javascript
复制
Content-Type: application/jsonContent-Length: 308Server: Werkzeug/0.11.13 Python/2.7.12Date: Wed, 14 Mar 2018 15:09:33 GMT
代码语言:javascript
复制
{  "datas": 
  [
    {      
       "check in": "2018-03-08 08:20:10",      
       "check out": "2018-03-09 14:00:00",      
       "identity card": "23012919950425723X",      
       "phone": "13484545190",      
        "room number": "1104",      
        "userid": 1,      
        "username": "李四",      
        "vpl": "京AJ3585"
    }
  ]
}

当然我们也可以使用requests轻松的解决这部分,见实现的代码:

代码语言:javascript
复制
#!/usr/bin/env python
#-*-coding:utf-8-*-

import  requests

r=requests.get(
   'http://localhost:5000/hotel/username/',
   auth=('wuya','admin'))
print r.text

或者直接指定HTTPBasic,见修改后的代码:

代码语言:javascript
复制
#!/usr/bin/env python 
#-*-coding:utf-8-*-

import  requests
from requests.auth import  HTTPBasicAuth

r=requests.get(
   'http://localhost:5000/hotel/username/',
   auth=HTTPBasicAuth('wuya','admin'))
print r.text
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 401 UNAUTHORIZED
    • Headers
    • Response (20.345s) - http://localhost:5000/hotel/username/
    • 200 OK
      • Headers
      相关产品与服务
      多因子身份认证
      多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档