Pytest的标签使⽤
1.在Pytest中标签也称为标记是⼀种⽤于对测试⽤例进⾏分类或分组的机制2.通过为测试⽤例添加标签可以在运⾏测试时选择性地执⾏特定标签的测试⽤例从⽽ ⽅便地控制测试的范围和⽬标3.可以理解为标签也是用来做过滤的一种方式4.Pytest的标签功能基于装饰器来实现5.可以使⽤ pytest.mark 装饰器为测试函数或测试类添加标签6.常⻅的⽤法是在测试函数或测试类上⽅添加装饰器并指定相应的标签一.mark后不同关键字的含义1.pytest.mark.skip标记测试函数为跳过测试并提供跳过的原因1.1.这在你想要暂时跳过某些测试的情况下很有用比如某个功能尚未实现或者有缺陷需要修复2.pytest.mark.xfail标记预期失败的测试2.1.这表示预期该测试会失败但想要运行它并收集结果。可以提供失败的原因3.pytest.mark.parametrize使用参数化标记来标记测试函数并提供参数化的值3.1.这样测试函数将会根据提供的参数值运行多次每次运行时使用不同的参数4.pytest.mark.somke通常用于标记快速运行、覆盖基本功能、且对整体系统影响较小的测试4.1.Smoke测试旨在快速验证系统的基本功能是否正常通常在每次代码提交后都会运行以便快速发现潜在的问题5.pytest.mark.slow通常用于标记运行较慢、覆盖范围较广、对整体系统影响较大的测试5.1.Slow测试可能包括集成测试、端到端测试、性能测试等需要更长的时间来执行6.自定义标签6.1.pytest.mark.任意标签内容但是不能有中文、不能以数字开头自定义标签mupytest.mark.skip跳过标记为skip的测试用例(不执行)1.2.源码还是使用上面的test001.py代码pytest.mark.somke仅运行文件中包含somke标签的测试用例4.2.test001.pyimportpytestpytest.mark.smokedeftest_login():# 测试登录功能assertTruepytest.mark.regressiondeftest_registration():# 测试注册功能assertTruepytest.mark.smokedeftest_add_to_cart():# 测试添加到购物车功能assertTruepytest.mark.regressiondeftest_checkout():# 测试结账功能assertTruepytest.mark.skip#标记为跳过的用例deftest001():print(001)pytest.mark.haileydeftest_test_002():print(添加一个标签后然后运行)4.2.1.somke执行pytest-vs-m smoke# 终端命令行的写法pytest.main([-vs,-m,smoke])# main文件的写法pytest.mark.自定义标签指定自定义标签的用例运行用例执行6.2.源码还是使用上面的test001.py代码pytest-vs-m hailey# 终端命令行的写法pytest.main([-vs,-m,hailey])# main文件的写法6.3.执行后结果报错6.4.配置pytest.ini⽂件在项⽬根⽬录下的 pytest.ini ⽂件中可以指定全局标记以应⽤于整个项⽬iniCopy code[pytest][pytest]markerssmoke:Run smoke tests regression:Run regression tests hailey:这是对标签的解释6.5.配置完成后重新执行一下二.Pytest标签的逻辑筛选1.逻辑分为四种是、非、或、和1.1.是pytest.main([-vs,-m,hailey])--pytest-mhailey-vs1.2.非pytest.main([-m,not hailey,-vs])--pytest-mnot hailey-vs1.3.或pytest.main([-vs,-m,hailey or smoke])终端--pytest-mhailey or smoke-vs1.4.和pytest.main([-vs,-m,hailey and smoke])终端--pytest-mhailey and smoke-vs2.示例test001.py2.1.是2.2.非2.3.或2.4.和执行结果报错2.4.1.和的逻辑必须同时满足两个或多个条件所以给自定义标签的这条用例上再加上smoke标签2.4.2.同一条用例可以标记多个标签2.4.3.再运行即可