当前位置: 首页 > 后端技术 > Python

为Python测试类使用自定义装饰器

时间:2023-03-26 13:42:10 Python

在Python自动化测试中,使用自定义装饰器将测试数据传递给测试方法:):xlname=path.join(DATA_DIR,xlname)data=[]wb=load_workbook(xlname)ws=wb.active#将选中的区域转换成列表ls=list(ws.iter_rows(min_row=min_row,max_row=max_row,min_col=min_col,max_col=max_col))wb.save(xlname)forrowinls:data_row=[]forcolinrow:data_row.append(col.value)data.append(data_row)wb.save(xlname)返回数据@classmethoddefread_csv(cls,filename):file_name=path.join(DATA_DIR,filename)ls=Nonewithopen(file=file_name,mode='r',encoding='utf-8')asf:ls=list(csv.reader(f))返回lsmy_decorator.pydefmy_decorator(sequeence):defouter(func):definner(self):foriteminsequence:try:func(self,*item)exceptException:#print()仅用于调试,考虑将错误日志写入数据库打印later('测试有问题')else:#print()只是为了调试,后面考虑通过日志写入数据库print('测试通过')returninnerreturnouterdata.csvadmin,1wp,1666666,1msramsrsa,0find_test.pyimporttimeimportunittestfromparameterizedimportparameterizedfrompages.page_loginimportPageLoginfrompages.page_system_operate_logimportPageSystemOperateLogfromutils.decorateimportmy_decoratorfromutils.driverimportWebDriverfromutils.readerimportReaderclassSysOperateLogFindPageTest(unittest.Test类):''日志页面测试类:执行系统操作日志UI测试页面作者:awake.silent@qq.com'''@my_decorator(Reader.read_csv('search_log_by_username.csv'))deftest_search_log_by_username(self,username,expect):'''对系统操作日志页面按账号查找日志的功能进行UI测试:paramusername:account:paramexpect:预期结果,'0'表示找不到日志记录,'1'表示可以找到日志记录:return:'''#打开系统操作日志页面self.psol.open()time.sleep(2)#输入账号点击搜索self.psol.do_search(username)time.sleep(2)#得到搜索结果result=self.psol。get_search_result()#进行断言ifexpect=='0':self.assertEqual(0,len(result))else:self.assertNotEqual(0,len(result))foriteminresult:self.assertEqual(username,项目.文本)