pytest-yaml-sanmu 插件为 yaml 用例文件提供了@pytest.mark的支持。
mark 中最基本的应用是用例标记和筛选,本文对此进行了具体的演示。
1. 在 pytest.ini 注册标记
在 pytest 中标记在使用前需要先进行 “注册”,具体来说,是在pytest.ini进行设置,来看具体的示例:
[pytest]markers = api:接口测试 web:Web测试 app
在上面的例子中,一共创建了 3 个标记:
api
web
app
其中 api 和 web 标记提供了标记说明,app 没有提供,这是因为标记描述是选填,可以省略。
标记注册成功后会成为 pytest 的一部分,可通过 pytest 命令查询到
如果执行 pytest 命令能够看到你的标记,说明就注册好了,接下来可以在用例中使用标记。
2. 在用例中使用标记
使用标记时,在mark字段下添加标记名称即可
注意:
每个用例可以拥有多个不同的标记
每个标记也可以添加给不同的用例
所以下一个用例和上面的用例同时存在
3. 根据标记筛选用例
给用例添加好标记后,启动 pytest 时传递-m <标记名>即可筛选用例,只有执行拥有指定标记的用例。
例如,传递web标记之后,只会有一个用例执行
(.venv) >pytest -m web
图 1. 筛选 web 标记只执行 1 个用例
传递app标记之后,只会有一个用例执行
图 2. 筛选 app 标记只执行 1 个用例
传递api标记之后,会有两个用例执行
(.venv) >pytest -m api
图 3. 筛选 app 和 web 标记执行 2 个用例
4. 小结
用例标记和筛选是 pytest 标记最基础的用法。
除了用户注册的标记之外,pytest 还内置了一些特殊标记,如果为用例使用这些特殊标记,可以得到不同的特殊效果。在后续的更新会有详细介绍。
领取专属 10元无门槛券
私享最新 技术干货