和大家分享一个自己二次封装uniitest的方法,大家可以在评论区多多指教,一起分享学习;
一、unittest基类封装
import os
import unittest
from common.log_print import Log
from common.get_config import getconfig
from common.base_page_info import BasePage
from common.browser import Browser
class SeleniumBaseCase(unittest.TestCase):
"""
封装一个setUp类方法
"""
@classmethod
def setUpClass(cls) -> None:
Log.logsinfo("=======测试类开始=======")
cls.url=getconfig.geturl
"""
封装一个初始化测试工作方法
"""
def setUp(self) -> None:
self.basepage=BasePage(Browser('chrome').getdriver())
self.basepage.waittime(10)
self.basepage.openurl(self.url)
self.basepage.setmaxbrowser()
"""
封装一个结束测试工作方法
"""
def tearDown(self) -> None:
self.basepage.timesleep(4)
self.basepage.closebrowser()
"""
封装一个tearDown类方法
"""
@classmethod
def tearDownClass(cls) -> None:
Log.logsinfo("=======测试类结束=======")
二、引用uniitest基类
import unittest
from action.login_action import LoginAction
from common.selenium_base_case import SeleniumBaseCase
from common.log_print import Log
class Logintest(SeleniumBaseCase):
def setUp(self) -> None:
"""
继承父类的setUp方法
"""
super().setUp()
"""
也可以在setUp方法中自定义功能,前提要写继承父类的方法 super().setUp()
"""
Log.logsinfo('登录测试用例开始')
def test_success_login(self):
'''登录成功测试用例'''
login_action=LoginAction(self.basepage.driver)
main_page=login_action.suceseelogin('admin','a12345678')
actual_result=main_page.get_username()
self.assertEqual(actual_result,'admin','登录成功用例执行失败')
def tearDown(self) -> None:
"""
继承父类的tearDown方法
"""
super().tearDown()
Log.logsinfo('登录测试用例结束')
自定义封装,其实就是一个三层继承 ,这样我们引用的时候会更方便;
Logintest----》SeleniumBaseCase----》unittest.TestCase