哈喽大家好,歪小王又来分享接口自动化脚本了。本期内容就提取字段属性做一个代码分享。废话不多,昊料开始~
上期内容在区分接口的分支中,用到了两个方法--->join_dict()和create_case_value()。
第一个方法主要对参数进行了第一层的剥离。判断数据类型是对象还是数组。然后做一个拼接。
第二个函数就是提取字段、字段属性。然后调用造数据的函数。
在刚开始写这块的时候,想着用一个方法处理这里。主要就是解析接口,提取字段等属性。
但是在写的时候,字段的类型会存在数组以及对象类型。放在一个函数中处理的话,又是长篇大论的臃肿代码。所以将其分成了两个函数。分别处理。以此来降低代码冗余,提高代码的可读性。
# 拼接字典参数
def join_dict(datas):
dict_data = {}
for key, value in datas.items():
if value["type"] in ["array", "object"]:
for key_, value_ in value.items():
if isinstance(value_, dict):
data = {f"{key}_{key_}": value_}
result = join_dict(data)
dict_data.update(result)
else:
print_log("参数异常")
raise ValueError(f"错误参数:{key, value},请检查")
else:
dict_data.update({key: value})
return dict_data
# 提取字段、字段属性,并填写数据
def create_case_value(data):
case_title = ["case_name"]
for key, value in data.items():
case_title.append(key)
requided_params_list = required_datas([data])
length_params_list = length_datas([data])
type_data_params_list = type_datas([data])
all_case = requided_params_list
for len_par in length_params_list:
all_case.append(len_par)
for type_par in type_data_params_list:
all_case.append(type_par)
return [case_title, *all_case]
这两个函数在编写初期,就想要有这么一个中转站,用来传递字段属性,然后接收造好的数据。返回给用例生成的主函数里面。
往后的内容主要是以源码的以及思路梳理的方法,来分享内容。(有严重的水文章的嫌疑😁)
各位看官老爷们,如果有好的思路随时留言讨论。本期内容就到这里了。我们下期见~