pytest之mark标签注册及用例匹配规则修改
通过pytest.ini可以mark注册标签和修改用例匹配规则,但要放在运行文件的根目录下才能生效(文件中最好不要有汉字,否则报编码错误)
一、mark标签:
[pytest]
markers =
success:
smoke
login
auth
demo
pytest -m smoke(用and连接多个标签名)
执行被装饰品@pytest.mark.smoke装饰的所有测试用例
标记测试用例的步骤:
1、在pytest.ini上注册标签p
[pytest]
markers =
success
2、将标签贴到指定的测试用例,@pytest.mark.标签名称
3、在命令行执行 pytest -m "标签名称" (最好加上双引号)
一个测试用例可以标记多个标签
将类标记有两种方式:
1、@pytest.mark.标签名称,
2、类属性形式:pytestmark = [pytest.mark.add,pytest.mark.smoke]
跳过函数:pytest.mark.skip(reason="原因"),跳过该测试用例不执行
@pytest.mark.skipif(sys.platform == 'win32',reason='平台不兼容'),满足某个条件后跳过该测试用例
标记的作用:
可以区分不同功能、模块、数据库、操作系统、正向\冒烟测试做标记,然后测试用例执行起来非常灵活
二、自定义用例匹配规则
python_files =
test_.py
check_.py
example_.py
python_functions =
test
python_classes =
*Suite
测试用例匹配规则:
pytest是以方法为单位发现用例的,写不写测试类不重量
运行规则
1、文件名以test.py开头或_test.py结尾
2、类名不必以Test开头,但最好加上方便识别,但类下面的方法必须以test开头,没有__init__函数
3、没写类,只写test命名的函数也可以识别
运行pytest参数:
1.指定测试模块:pytest test_mol.py
2.指定测试目录:pytest testing/
3.通过节点ID来运行测试:
节点ID的组成:py模块名::类名::函数名::或py模块名::函数名
示例:pytest test_.py::Test::test_*
4.通过关键字表达式过滤执行:关键字要用双引号
pytest -k "TestClass and not test_func"
执行符合匹配表达式的文件名、类名、方法名的用例

浙公网安备 33010602011771号