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

  • 相关阅读:
    Binary Search Tree Iterator 解答
    Invert Binary Tree 解答
    Min Stack 解答
    Trapping Raining Water 解答
    Candy 解答
    Jump Game II 解答
    Implement Hash Map Using Primitive Types
    Gas Station 解答
    Bucket Sort
    HashMap 专题
  • 原文地址:https://www.cnblogs.com/gsxl/p/11919569.html
Copyright © 2011-2022 走看看