zoukankan      html  css  js  c++  java
  • python接口自动化4-常用取token值方法

    前言

    在接口测试中我们经常是需要一个登陆token,或者获取其他用到的参数来关联下一个接口用到的参数。这里介绍一些本人常用的方法。

    一、简介

    不过在哪里我们也是能实现自动化api测试的,我们都知道token一般都会在这几个地方:

    1.返回参数的token;

    2.返回头部信息中;

    3.上一个页面中;

    二、取 token 常用方法

    1.在返回参数中,如json:

    R_json = {
        "code": 200,
        "message": "登录成功",
        "token": "ef135bce4284s45ab5967fdf22e81fa2"
    }
    
    print(R_json["token"])

     

    2.在返回参数中还有,json嵌套list、json:

    # 多层嵌套取token值
    R_json = {"jjson": [
        {
            "code": 200,
            "message": "账号或密码错误",
            "token": ""
        },
        {"code": 200,
         "message": "登录成功",
         "token": "ef135bce4284s45ab5967fdf22e81fa2"
         }
    ]}
    
    print(R_json["jjson"][1]["token"])

     3.在返回参数中,是html或者是raw文本显示的我们可以通过正则取到值:

    常用的正则有以下三种:

    ①取中间:xxx(.+?)xxx

    ②取后面:xxx(.+?)$

    ③取前面:^(.+?)xxx

    import requests
    import re
    
    # html 中常用到 re 取值
    url = 'https://www.baidu.com'
    s = requests.get(url)
    res = s.content.decode('utf-8')
    
    token = re.findall('href=//(.+?) name', res)    # 取中间
    print(token)        # 取到的是 list
    print(token[0])     # 所以我们一般[0],取第一个即可。

    4.在响应头部中

    url = 'https://www.baidu.com/'
    s = requests.get(url)
    print(s.headers)                    # 如果token在返回头部信息中我们可以这样获取
    print(s.headers["Cache-Control"])
    token = re.findall("no-cache, (.+?), ", s.headers["Cache-Control"])
    print("token是:"+token[0])

    看到了此,是不是觉得re正则还是很实用的呢?赶紧去随便请求个接口拿到一个你想要的值吧!!!

    欢迎来QQ交流群:482713805

  • 相关阅读:
    VS2010 VC Project的default Include设置
    Linux 下的编辑/编译器
    用命令实现Win7远程桌面关机和重启
    怎样快速刪除Word中超链接?
    chrome浏览器世界之窗浏览器的收藏夹在哪?
    代码量查找工具[最好用的]
    C项目实践--网络协议和套接字编程
    memmove 和 memcopy
    bzoj2456: mode
    bzoj1205: [HNOI2005]星际贸易
  • 原文地址:https://www.cnblogs.com/gsxl/p/11919569.html
Copyright © 2011-2022 走看看