商业网站初期建设资金预算,网站开发antnw,长沙网站seo公司,外贸网站如何选择域名文章目录方法1 setup/teardown方法2 fixture 夹具方法3 conftest.py测试用例执行前后的一些处理动作#xff0c;也叫夹具。以下介绍使用前后置操作的几种方法。方法1 setup/teardown
setup#xff0c;每个测试用例执行前要进行的处理。 teardown#xff0c;每个测试用例执行…
文章目录方法1 setup/teardown方法2 fixture 夹具方法3 conftest.py测试用例执行前后的一些处理动作也叫夹具。以下介绍使用前后置操作的几种方法。方法1 setup/teardown
setup每个测试用例执行前要进行的处理。 teardown每个测试用例执行结束后要进行的处理。
import pytestclass TestMyProject:def setup(self):print(每个测试用例执行前的初始化)def test_001(self):print(测试用例1)def test_002(self):print(测试用例2)def teardown(self):print(每个测试用例执行结束后的收尾)setup_class/teardown_class 每个测试类初始化前后的操作如创建日志对象连接数据库等操作。 class TestMyProject:def setup_class(self):# 如连接数据库print(测试类初始化前的操作)def setup(self):print(每个测试用例执行前的初始化)def test_001(self):print(测试用例1)def test_002(self):print(测试用例2)def teardown(self):print(每个测试用例执行结束后的收尾)def teardown_class(self):# 如关闭数据库print(测试类执行后的操作)方法2 fixture 夹具
实现全部或者部分测试用例的前后置处理。
结构及参数
# scope 被标记方法的作用域函数、类、模块、包
# params 被标记方法的参数化
# autouse 是否自动使用
# name 别名
pytest.fixture(scope, params, autouse, ids, name)
def my_func():print(前置操作)# yield分割前后置操作yieldprint(后置操作) autouseFalse: 非自动使用时要将my_func传入指定的测试用例谁需要传给谁 自动使用且scopefunction时 将my_func前后置操作用于所有的测试用例。 scopeclass时autouseTrue每个测试类执行前后置操作。 scopemodule时autouseTrue每个模块中执行一次前后置操作。
# 定义夹具操作
pytest.fixture(scopefunction, autouseFalse, name别名)
def my_func():print(前置操作)# yield分割前后置操作yieldprint(后置操作)class TestMyProject:def test_001(self, my_func): # 仅001测试用例有前后置操作非自动使用要传入print(测试用例1)def test_002(self):# 没有前后置操作print(测试用例2)params参数使用 可以给被fixture装饰的函数传入参数。 类型为list/tuple、字典组成的列表元组
import pytest
import timeparams [{name: jack,age: 23}, {name: lucy,age: 18}]# 夹具操作
# ids 设置每个参数的变量名
pytest.fixture(scopefunction, paramsparams, ids[dict_1, dict_2], autouseFalse, namefunc_lauf)
def func(request): # 参数必须使用request且调用param属性拿到参数值print(前置操作...)yield request.param # 抛出值后执行外部函数体外部执行结束再执行yield后面的部分print(前置操作...)class TestWebClass:# 部分测试用例使用夹具传入函数的返回值# 变量必须与函数别名相同无别名则用函数名def test_001(self, func_lauf): # func_lauf 为夹具别名执行时传入夹具的返回值print(test 001 成功)print(********** 夹具返回值:, func_lauf)def test_002(self):time.sleep(3)assert 1 1 方法3 conftest.py
conftest.py需要结合fixture一起使用将fixture装饰的函数放入该模块实现全局的使用conftest.py放入测试用例的同级目录;当前包的子包可以使用当前包的conftest.py;测试用例优先查找本包的conftest.py测试用例使用时直接传入夹具即可不需要导入
例子