Python 动态创建类属性的机制 实现 接口依赖

2022/1/6 14:05:04

本文主要是介绍Python 动态创建类属性的机制 实现 接口依赖,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

我们在接口自动化测试中经常遇到一个接口的请求参数是另一个接口响应信息中的内容,解决方法有:

  • 1.设置全局变量
  • 2.动态设置类属性
  • 3.写入配置文件

但是第1种设置全局变量使用时,容易有以下问题:

  • 循环导模块的问题, 会报错
  • 不能多次导入同一个变量, 变量值不会实时更新
    故推荐使用第2种动态设置类属性 和第3种写入配置文件。  

动态创建类属性方法:
第一种:
创建:类名.属性名 = 具体的属性值
获取:变量名 = 类名.属性名

第二种:
创建:setattr(类名/实例对象名,属性名,具体的属性值)
获取:getattr(类名/实例对象名,属性名)
注:属性名需要加引号

实战:创建类属性 loan_id

# 第一种,动态创建
#** 类名.属性名 = 具体的属性值**
Context.loan_id = mysql_data.get('Id')    # 动态创建类属性
# 第二种,创建 setattr(译:赛特attr)
# 如果第一个参数为实例对象, 那么将会为这个实例对象, 创建实例属性
# 如果第一个参数为类, 那么将会创建类型属性
# 第二个参数为属性名的字符串
# 第三个参数为具体的属性值
setattr(Context, "loan_id", mysql_data.get('Id'))       # setattr(译:赛特attr)


@classmethod
def loan_id_replace(cls, data):
    if re.search(cls.loan_id_pattern, data):    # 如果不查找可以直接替换
        # 第一种,动态获取
        # loan_id = Context.loan_id
        # data = re.sub(cls.loan_id_pattern, loan_id, data)

        # 第二种:获取用 getattr(译:给特attr) 获取这个类当中的 loan_id 类属性的 值
        # 如果第一个参数为实例对象 或 类
        # 第二个参数为属性名的字符串
        loan_id = str(getattr(Context, "loan_id"))  # 我们获取的 loan_id 是int类型需要转换
        data = re.sub(cls.loan_id_pattern, loan_id, data)
    return data


这篇关于Python 动态创建类属性的机制 实现 接口依赖的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程