pytest测试框架结构(setup/teardown)
测试装置介绍
setup: 用于前置工作
teardown: 用于后置工作
unitest,单测框架,一般都有setup、teatdown测试装置,用于测试数据准备、测试数据清理;
app测试, 测试前启动测试,测试后关闭测试;
web测试,测试前打开浏览器,设置浏览器参数(复用、安全),测试后关闭浏览器
接口测试,测试前连接服务,测试后断开服务
类型:规则
setup_module/teardown_module: 全局模块级,全程只执行一次,在测试模块执行前后执行;
setup_class/teardown_class: 类级,只在测试类执行前后执行一次;
setup_function/teardown_function: 函数级,在类外的函数,在函数被调用前后执行;
setup_method/teardown_method: 方法级,在类内的每个方法被调用前后执行;
setup/teardown: 方法级,在类内的每个方法被调用前后执行;
# pytest测试框架结构(setup/teardown)
# setup: 测试用例的前置条件
# teardown: 测试用例结束的后置工作
# pytest "setup + 类外函数 + teardown" 框架结构的测试装置 Demo
def setup_module():
"""
模块级别的setup,只被执行一次,在测试模块被调用前执行
:return:
"""
print("\n资源准备:setup module")
def setup_function():
"""
方法级别的setup, 在每次类外函数test_case1()调用前,都会执行一次setup_function()
:return:
"""
print("资源准备:setup function")
def test_case1():
"""
pytest框架中的类外函数,需要以test_开头命名
:return:
"""
print("case1")
def teardown_function():
"""
方法级别的teardown, 在每次类外函数test_case1()调用后,都会执行一次teardown_function()
:return:
"""
print("资源销毁:teardown function")
def teardown_module():
"""
模块级别的teardown,只被执行一次,在测试模块结束测试后执行
:return:
"""
print("资源销毁:teardown module")
# pytest "setup + 类内函数 + teardown" 框架结构的测试装置 Demo
class TestDemo:
"""
pytest的测试类,类名命名规则以Test开头
"""
def setup_class(self):
"""
类级别的setup,只被执行一次,在测试类被调用之前执行
:return:
"""
print("\n资源准备:setup_class")
def setup_method(self):
"""
类内方法级别的setup,能被执行多次,在每次类内方法被调用之前执行
:return:
"""
print("\n资源准备:setup_method")
def test_case2(self):
"""
pytest框架中的类内方法,需要以test_开头命名
:return:
"""
pass
def test_case3(self):
"""
pytest框架中的类内方法,需要以test_开头命名
:return:
"""
pass
def teardown_method(self):
"""
类内方法级别的teardown,能被执行多次,在每次类内方法被调用之后执行
:return:
"""
print("\n资源销毁:teardown_method")
def teardown_class(self):
"""
类级别的teardown,只被执行一次,在测试类被调用之后执行
:return:
"""
print("资源销毁:teardown_class")