場景:
做自動化是,每次都需要調用登錄方法,代碼重復比較多,在這種場景下,將登錄功能抽取為裝飾器demo
class Test:
data= get_yaml_date_by_fillter(filename ='warehouse_case.yaml',filter='whpage')
@ddt.data(*data)
@login
def test_OpenWareHouse_Info(self,data):
try:
for key in data:
result = WarehouseInfo.openWareHouseInfo(self)
if result == data[key]['assert']:
logger.info('%s 測試結果:%s' % (key, '通過'))
self.assertEqual(result,data[key]['assert'])
except:
raise
def login(func):
'''
登錄功能抽取為裝飾器
:param func:
:return:
'''
# 獲取正確登錄密碼賬號登錄系統
login_data = get_yaml_date_by_fillter(filename='login.yaml', filter='login')[2]
def wrapper(self,*args):
# 調用登錄方法
result = LoginModel.login_success(self,login_data['login_case_003'])
if result != None:
return func(self,*args)
else:
print('登錄失敗')
return wrapper
