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

```

posted @ 2022-05-13 15:02  叶先生啊  阅读(336)  评论(0编辑  收藏  举报