首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >pytest按tag动态挑选测试用例

pytest按tag动态挑选测试用例

作者头像
用户5521279
发布2020-11-09 14:25:29
发布2020-11-09 14:25:29
2.5K0
举报
文章被收录于专栏:搜狗测试搜狗测试

pytest是个成熟全套的 python 自动化测试工具。单元测试,功能测试、接口自动化测试中均可应用;与 unittest相比,它能支持更多、更全面的功能,同时也具备更多特色和优势,可以参考之前同学发布的文章。

动态挑选测试用例一直是测试框架使用的必要功能,比如执行冒烟case进行预测试,针对开发对改动模块进行测试等,根据需求不同的测试阶段或测试范围内动态调整执行对应的case。在 pytest 里可以按照tag或者按文件动态挑选测试用例,下面简单介绍一下按tag动态挑选用例。

需要以下两个步骤:

1.首先给测试用例打标签(mark),在class、method 上加上如下格式装饰器,如下面简单示例:

@pytest.mark.xxx

执行class中的用例

执行函数中的用例

执行class中的函数

2.在运行时,命令行动态指定标签运行:

# 同时选中带有这两个标签的所有测试用例运行

pytest -m "mark1 and mark2"

# 选中带有mark1或 mark2标签的所有测试用例

pytest -m "mark1 or mark2"

# 选中带有mark1的测试用例,不运行mark2的测试用例

pytest -m "mark1 and not mark2"

下面用命令行执行-v查看执行详细信息,使用以上规则执行,可以看到没有同时满足important和smoke的用例,important且unrun的用例一条,smoke或unrun的用例两条,important但不是un的用例一条,且执行结果如标签内容

在执行-m 参数 mark 标记的用例时,pytest 会发出告警信息 “PytestUnknownMarkWarning: Unknown pytest.mark.login - is this a typo? ”如

这是一个 pytest 未知的一个标记,为了消除告警,需要在 pytest的配置文件中注册 mark 标记。

注册 mark 标记:

首先在项目根目录创建一个文件pytest.ini ,这个是 pytest 的配置文件;

然后在 pytest.ini 文件的markers 中写入 mark 标记, 冒号 “:” 前面是标记名称,后面是 mark 标记的说明,可以是空字符串;

注意:pytest.ini文件中只能使用纯英文字符,绝对不能使用中文的字符(尤其是冒号和空格)!

注册完 mark 标记之后 pytest 便不会再告警。注意:pytest.ini 配置文件不支持注释

[pytest]

markers =testclass : 'marks tests as classlevel'

smoke : 'marks tests as smoke'

important : 'marks tests as important'

unrun : 'marks tests as not to run'

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档