# 依赖数据的处理逻辑
from Config.public_data import REQUEST_DATA,RESPONSE_DATA
from Utils.md5_encrypt import md5_encrypt
class GetRely():
def __int__(self):
pass
# 举例登录接口依赖注册接口的请求参数在Excel中的显示结构:{"request":{"username":"register->1","password":"register->1"}}
# 举例新增博文接口依赖登录接口的响应body在Excel中的显示结构:{"response": {"userid": "login->1", "token": "login-1"}}
@classmethod
def get(cls, dataSource, relyData): #dataSource其实是requestData
dataS = dataSource.copy() #copy的目的是不改变原来的值
for key,value in relyData.items():
# 说明应该去REQUEST_DATA获取依赖数据
if key == "request":
for k,v in value.items():
interfaceName,case_id = v.split("->") #v是"register->1"
try:
val = REQUEST_DATA[interfaceName][case_id][k] #自己设置的格式用来存储数据
if k == "password":
dataS[k] = md5_encrypt(val)
else:
dataS[k] =val
except Exception as e:
pass
# 说明需要去RESPONSE_DATA获取依赖数据
elif key == "response":
for k, v in value.items():#返回的是做完数据依赖处理的请求参数
interfaceName,case_id = v.split("->") #v是"login->1"
try:
dataS[k] = REQUEST_DATA[interfaceName][case_id][k] #自己设置的格式用来存储数据
except Exception as e:
pass
return dataS
if __name__ == "__main__":
#存储依赖数据(这个变量在public_data里面也存储了)
#先造一条假数据(下面数据的格式是自己设置的格式)
#REQUEST_DATA结构都是自己设置的,一般都是设置成字典(用户注册表示接口名称(API里面的接口名称),1表示第几条用例)
REQUEST_DATA = {"用户注册":{"1":{"username":"zhangsan111", "password":"zhangsan111"}}} #request
RESPONSE_DATA = {"用户注册":{"1":{"username":"zhangsan", "password":"zhangsan"}}} #response
s = {"username": "", "password": ""}
rely = {"request": {"username": "用户注册->1", "password": "用户注册->1"}}
print(GetRely.get(s, rely))
Excel接口自动化(4)封装接口发送请求之前做数据依赖的处理
最新推荐文章于 2024-06-04 16:44:45 发布