2020年7月8日第22节课如果接口上下游之间有数据关联是怎么处理的

如果有上下游接口数据的关联时,应该如何进行处理?

'''
如果有上下游接口数据的关联时,应该如何进行处理?

1.setattr动态的设置类属性(环境变量设置)----最常用
    1.1:设置一个空的环境变量的类,来存储所需要的环境变量
        # 环境变量
        class Env_vardata:    # 设置一个环境变量的类
            #存储用例要使用到的数据。
            pass
            
    1.2:把得到的数据存储到一个全局对象中,通过这个对象去访问
        例如:
            1.我是用jsonpath方法获取到了我的响应结果里的id数据,将这个id值存储在Env_vardata类中
            
            2.那么使用setattr(Env_vardata,'member_id',jsonpath(resp.json(),'$..id')[0])) 
                # 其含义是使用setattr方法动态的给Env_vardata类,设置一个类属性member_id,参数为:jsonpath(resp.json(),'$..id')[0])) 
                # 使用时直接调用Env_vardata.member_id来获取值即可
        
    1.3:无论哪个接口需要这个数据都可以直接调用这个类的对象去访问

        
2.使用cls类本身的方法来调用
    1.1:直接使用jsonpath方法获取到了这个响应结果里的id数据
            例如:jsonpath(resp.json(),'$..id')[0]   # 看具体情况
    1.2:将这个响获取的id值直接设置为类本身
            例如:cls.member_id = jsonpath(resp.json(),'$..id')[0]
    1.3:在使用是直接调用cls.member_id即可
    
    
面试问题:在接口测试框架当中,接口之间的数据关联是怎么处理的,你会怎么回答?
        我会把上一个接口的返回值,存到一个全局变量当中,然后在下一个接口当中去访问这个全局变量的类对象
    
'''

# 1.动态的设置类属性(全局变量设置)

class AABB:
    pass

# setattr hasattr,getattr,delattr

setattr(AABB,'name','hello')  # 直接设置一个类属性
print(AABB.name)     # 会输出 hello

你可能感兴趣的:(接口自动化测试笔记)