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

  • 相关阅读:
    创建自定义图标和图像
    使用_CRTDBG_LEAK_CHECK_DF检查VC程序的内存泄漏(转)
    Hadoop Netflix数据统计分析2(转)
    系统提供的按钮和图标
    STATIC变量问题
    表格视图,文本视图和Web视图
    Hadoop Netflix数据统计分析1(转)
    获取程序数据路径(转)
    C++中STRING转为INT (转)
    netflix 推荐算法学习1(转)
  • 原文地址:https://www.cnblogs.com/gsxl/p/11919569.html
Copyright © 2011-2022 走看看