测试之路 pytest接口自动化框架扩展-提取字段属性
2023-02-18 16:23:12 时间
哈喽大家好,歪小王又来分享接口自动化脚本了。本期内容就提取字段属性做一个代码分享。废话不多,昊料开始~
开篇
上期内容在区分接口的分支中,用到了两个方法--->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]
这两个函数在编写初期,就想要有这么一个中转站,用来传递字段属性,然后接收造好的数据。返回给用例生成的主函数里面。
结语
往后的内容主要是以源码的以及思路梳理的方法,来分享内容。(有严重的水文章的嫌疑?)
各位看官老爷们,如果有好的思路随时留言讨论。本期内容就到这里了。我们下期见~
相关文章
- 常用的标准LCD驱动芯片,性价比高,稳定性好,多种封装型号选择VK1056
- 阿里大佬倾情力荐:Java全线成长宝典,从P5到P8一应俱全
- 从家庭场景到工商业场景,涂鸦智能携手一元电气打造储能为核心的智慧能源管理方案
- TG Pro for mac(硬件温度检测工具) v2.76激活版
- 深圳世微补光灯 恒流调光IC调光深度0.1%无频闪
- Commander One for Mac(双窗口文件管理器)v3.5免激活版
- 广域铭岛入选“2022年制造业质量管理数字化典型场景和解决方案优秀案例”
- 如何进行react状态管理方案选择
- React的useState和setState到底是同步还是异步呢?
- 优思学院|六西格玛中的线性回归分析有什么意义?
- 终于实现了一门属于自己的编程语言
- 里程碑!用自己的编程语言实现了一个网站
- 手写编程语言-实现运算符重载
- 手写编程语言-递归函数是如何实现的?
- Vue的computed和watch的区别是什么
- 用自己的编程语言实现了一个网站(增强版)
- 手写编程语言-如何为 GScript 编写标准库
- 彻底理解闭包实现原理
- 浅谈 Raft 分布式一致性协议|图解 Raft
- 字节微服务HTTP框架Hertz使用与源码分析|拥抱开源