Pytest系列(6)- 标记mark的使用
mark的作用
- 可以把一个项目划分为多个模块,然后通过指定模块名称执行对应的用例
mark用法
@pytest.mark.xxx标记用例即可
🐋 ATTENTION:
- 标记名最好有意义
- 同一个测试类/方法可以同时拥有多个标记
话不多说,我们直接上代码👇👇👇
# -*- coding: utf-8 -*-
# @Author : Mooii
# @Time : 2021/11/15
# @File : TestMark.py
# @Description :标记mark的使用
# test_login_logout.py
import pytest
@pytest.mark.login
class TestLogin:
"""登陆测试类"""
@pytest.mark.smoke
@pytest.mark.success
def test_login_sucess(self):
"""登陆成功"""
print("登录成功")
@pytest.mark.failed
def test_login_failed(self):
"""登陆失败"""
print("登录失败")
@pytest.mark.logout
class TestLogout:
"""登出测试类"""
@pytest.mark.smoke
@pytest.mark.success
def test_logout_sucess(self):
"""登出成功"""
print("登出成功")
@pytest.mark.failed
def test_logout_failed(self):
"""登出失败"""
print("登出失败")
运行方式
cmd敲命令
# 指定login的用例
pytest -s -m login TestMark.py
运行结果如下:

# 指定login但login不成功的用例
pytest -s -m "login and not success" TestMark.py
运行结果如下:

🐋 ATTENTION:
- 使用-m指定标记名称
- -m参数支持and、or、not等表达式
- 在组合条件的时候,需要使用双引号
" "
一些问题
warning信息:PytestUnknownMarkWarning: Unknown pytest.mark.logout - is this a typo?
消除方法:在pytest配置文件中注册mark标记名称即可
[pytest]
markers =
login : 'marks tests as login'
logout : 'marks tests as logout'
success : 'marks tests as success'
failed : 'marks tests as failed'

浙公网安备 33010602011771号