1.unittest框架
class TestStringMethods(unittest.TestCase):
def setUp(self) -> None: # 每一条测试用例开始前执行
print("setup")
def tearDown(self) -> None: # 每一条测试用例结束后执行
print("teardown")
@classmethod
def setUpClass(cls) -> None: # 此类的所有测试执行前执行一次
print("setupcls")
@classmethod
def tearDownClass(cls) -> None: # 此类的所有测试执行后执行一次
print("teardowncls")
2.pytest框架
setup_class、teardown_class
该方法表示在类中执行测试用例前,只执行1次测试前置和测试后置
setup_method、teardown_method
该方法表示在类中每次执行测试用例前,测试前置和测试后置都会执行一次
setup_function、teardown_function
该方法表示在类外面执行用例过程中,每次都会执行前置和后置。
setup_module、teardown_module
该方法表示只能类外面执行用例过程中,只执行1次。相当于unittest中的setupclass和teardownclass方法
setup、teardown
先介绍第一个大家都比较熟悉的与unittest中的书写一直,这个可以在类中使用,也可以在类外进行使用。
该方法每条用例都会执行
本文就采用的pytest框架,基于类封装启动移动端应用进行用例测试
class driver_base_class():
@classmethod
def setup_class(cls)-> None:
cls.desired_caps = {
"appPackage": "plus.H5EA2E279",
"platformName": "Android",
"deviceName": "cb5c2f8f",
"appActivity": "io.dcloud.PandoraEntry",
"skipServerInstallation": "false"
}
with warnings.catch_warnings():
warnings.filterwarnings("ignore", category=DeprecationWarning)
cls.driver = webdriver.Remote('http://localhost:4723/wd/hub', cls.desired_caps) # 启动app
@classmethod
def teardown_class(cls)-> None:
cls.driver.quit()
在测试用例类中集成上面封装好的启动应用类的方法
class Test_login(driver_base_class):
"""编写测试用例""""
在终端使用 pytest -v test_login.py --alluredir=../reports 即在测试用例中启动测试用例即可