1、在utils工具文件下新建一个assert_manager.py 封装断言
utils>assert_manager.py
#封装断言 from driver.driver_manager import driver from utils.log_manager import my_logger from utils.sql_manager import sql_manager class AssertManage: '''三种断言 1、断言文本是否存在 2、断言数据库的数据 3、断言图像是否在当前页面''' def assert_test(self,type='page',value='', target_value='*',table='',column='',limit=''): '''断言文本,如果type是page,代表需要断言页面的文本信息''' if type == 'page': try: assert value in driver.page_source #driver.page_source是检查当前页面,比较简单,可以写检查元素,URL等相关 except Exception as e: my_logger.logger.error(f'页面上没有发现{value}') raise e '''2、数据库断言''' elif type == 'sql': my_logger.logger.info("开始断言数据库里的内容") result = sql_manager.get_data_from_table(target_value,table,column,limit) try: assert value in str(result) except Exception as e: my_logger.logger.error(f'数据库{table}中,没有发现{value} 信息') raise e assert_manager = AssertManage() result = sql_manager.get_data_from_table(target_value='*',table='oc_customer') print(result)
3.测试用例中的使用
testcases>test_opencart_demo.py
import time import pytest from pages.main_page import MainPage from utils.assert_manage import assert_manager from utils.log_manager import my_logger @my_logger.runtime_logger_class class TestOpencartDemo(): def test_01_reg(self): main_page = MainPage() #初始化一个页面的对象 main_page.open_main_page() main_page.go_to_reg() assert_manager.assert_test(type='page',value='zhangsan') def test_02_login(self): main_page = MainPage() main_page.open_main_page() main_page.go_to_login() assert_manager.assert_test(type='sql',value='zhangsan',target_value='*',table='oc_customer',column='firstname',limit='zhangsan') if __name__=='__main__': pytest.main()