1. 程式人生 > 其它 >python-介面自動化,介面請求資料上下文依賴處理

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

```