这些标记除了能对对测试进行分类、过滤外,还能给被装饰的函数一些额外的功能!
标记的分类
我们按照有无功能将 标记分为: 功能性标记 和 无功能性标记 两大类| 类别 | 特点 | 主要用途 | 是否影响测试逻辑 |
|---|---|---|---|
| 功能性标记 | 会改变测试的执行方式 | 参数化、跳过、预期失败 | ✅ 直接影响 |
| 无功能性标记 | 仅添加元数据/标签 | 分类、筛选、分组 | ❌ 不影响逻辑 |
无功能性标记
pytest 的所有内置 mark 都是功能性标记,没有内置的”纯粹无功能”标记,用户自定义标记即是无功能标记! 首先我们需要pytest.ini 中注册自定义的mark,以避免警告,比如:
pytest-html来解决, pip install pytest-html
功能性标记
如上所提,pytest内置了很多功能性mark供我们使用!参数化测试功能
参数化测试功能@pytest.mark.parametrize,是pytest内置的一个非常强大且重要的功能性标记!参数化测试核心功能就是:让一个测试函数使用不同的参数运行多次!
单参数测试用例
单个参数的值除了是基本类型,还可以是复杂点的类型,比如字典
多参数测试用例
参数别名ids
其实还支持第三个参数@pytest.mark.parametrize(params_name,params_value, ids)第三个参数是 ids为可选参数,用来给每组参数起一个可读的名字,也是列表类型,主要用于提高测试报告可读性。

