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
```
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?