测试之路 pytest接口自动化框架扩展-提取字段属性

本文介绍了作者在编写接口自动化脚本时,如何通过join_dict()和create_case_value()两个函数实现字段属性的提取和代码优化。join_dict()用于处理参数的拼接,而create_case_value()则负责提取字段和字段属性。作者通过拆分函数来提高代码可读性和减少冗余。后续内容将继续分享源码和思路。

哈喽大家好,歪小王又来分享接口自动化脚本了。本期内容就提取字段属性做一个代码分享。废话不多,昊料开始~

开篇

上期内容在区分接口的分支中,用到了两个方法--->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]

这两个函数在编写初期,就想要有这么一个中转站,用来传递字段属性,然后接收造好的数据。返回给用例生成的主函数里面。

结语

往后的内容主要是以源码的以及思路梳理的方法,来分享内容。(有严重的水文章的嫌疑😁)

各位看官老爷们,如果有好的思路随时留言讨论。本期内容就到这里了。我们下期见~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值