unittest自定义封装与应用

和大家分享一个自己二次封装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
posted @ 2020-05-07 23:41  OnePlum  阅读(439)  评论(0编辑  收藏  举报