• python接口自动化,接口请求数据上下文依赖处理


    #前言

    1、做接口自动化时,很多人不清楚接口自动化请求参数中,上下文依赖的参数该如何处理

    这里简单介绍一下平时常用的两种方法

    方法一:请求成功后直接 return 处理,这里 depot id 和 name 下文都需要用,所以直接返回,示例:

    ```

    def create_init_depot(initserver) -> dict:
    """创建初始化的 git 仓库"""
    name = "depot-demo-" + Public.random_str()
    depot_params = {
    "name": name,
    "shared": "false",
    "description": "",
    "vcsType": "git",
    "gitReadmeEnabled": "true",
    "gitIgnore": ""
    }
    resp = initserver.post(QciUrl.create_init_depot_URI(initserver.current_team, initserver.project_name),
    body=depot_params, header=1)
    assert resp.get("code") == 0
    logger.info("初始化仓库: {}".format(resp))
    return {
    "depot_id": resp.get("data").get("id"),
    "depot_name": resp.get("data").get("name")
    }

    ```

    方法2:设置全局变量字典,往字典里塞或者拿数据,示例:

    1、先封装初始化,添加、取 字典数据的方法

    ```

    @staticmethod
    def _initdict():
    global _global_dict
    _global_dict = {}

    @staticmethod
    def set_value(name, value):
    _global_dict[name] = value

    @staticmethod
    def get_value(name, defValue=None):
    try:
    return _global_dict[name]
    except KeyError:
    return defValue

    ```

    2、在类里直接 init 初始化字典,示例

    ```

    class Rule():
    def __init__(self):
    Public._initdict()

    ```

    3、需要处理的参数直接调用即可,示例

    这里请求成功后 set 数据

    ```

    def create_init_depot(self, initserver) -> dict:
    name = "depot-demo-" + Public.random_str()
    depot_params = {
    "name": name,
    "shared": "false",
    "description": "",
    "vcsType": "git",
    "gitReadmeEnabled": "true",
    "gitIgnore": ""
    }
    resp = initserver.post(QciUrl.create_init_depot_URI(initserver.current_team, initserver.project_name),
    body=depot_params, header=1)
    assert resp.get("code") == 0
    logger.info("初始化仓库: {}".format(resp))
    Public.set_value("depot_name", resp.get("data").get("name"))
    Public.set_value("depot_id", resp.get("data").get("id"))

    ```

    这里要用到时 get 数据

    ```

    def get_depot_commitID(self, initserver):
    pamars = {}
    depot_name = Public.get_value("depot_name")
    resp = initserver.get(QciUrl.get_commitID(initserver.current_team, initserver.project_name, depot_name),
    body=pamars)
    assert resp.get('code') == 0

    ```

  • 相关阅读:
    C# 深浅复制 MemberwiseClone
    负载均衡算法,轮询方式
    大话设计模式之工厂模式 C#
    大话设计模式:代理模式 C#
    C# 单元测试
    【前端安全】JavaScript防http劫持与XSS
    神秘的 shadow-dom 浅析
    【CSS进阶】伪元素的妙用2
    【CSS进阶】CSS 颜色体系详解
    【CSS进阶】box-shadow 与 filter:drop-shadow 详解及奇技淫巧
  • 原文地址:https://www.cnblogs.com/5566yesongqiao/p/16266752.html
Copyright © 2020-2023  润新知