pytest系列之-mark功能的使用
功能使用:
- 标记用例,按正常、异常用例划分等级进行标记,或者按照模块进行划分。
- 标记后,可以执行部分用例。
例如:
你有以下用例,文件目录结构如下:
testcase
----user
----management
----create
----testcase_create_001(正常场景)
----testcase_create_002(参数校验用例)
----testcase_create_003(逻辑校验用例)
----testcase_create_004(场景切换用例)
----testcase_create_005(等等)
----update
----testcase_update_001(正常场景)
----testcase_update_002(参数校验用例)
----testcase_update_003(逻辑校验用例)
----testcase_update_004(场景切换用例)
----testcase_update_005(等等)
----delete
----testcase_delete_001(正常场景)
----testcase_delete_002(参数校验用例)
----testcase_delete_003(逻辑校验用例)
----testcase_delete_004(场景切换用例)
----testcase_delete_005(等等)
----query
----testcase_query_001(正常场景)
----testcase_query_002(参数校验用例)
----testcase_query_003(逻辑校验用例)
----testcase_query_004(场景切换用例)
----testcase_query_005(等等)
----operator(等等)
现在我们要执行其中的一部分用例该怎么办呢?
例如有如下要求:1)只执行正常场景的用例,2)只执行异常场景的用例,3)只执行create模块的用例,4)执行所有user-management下所有用例
就可以使用pytest.mark给用例打标签,一个用例可以打多个标签
针对以上问题,我们可以这样解决:
1)将所有正常用例标记为@pytest.mark.level1
2)将所有异常用例,按照自我评定等级标记用例,分别将参数校验用例标记为@pytest.mark.level2,将逻辑校验用例标记为@pytest.mark.level3,以此类推;
3)将create模块的所有用例标注为@pytest.mark.user_management_create
4)将user-management下所有用例标注为@pytest.mark.user_management
此外,我们还要注册标签名称,才能使用。
官方提供的注册方式,直接在pytest.ini文件中声明即可:
pytest.ini固定格式如下所示:
[pytest]
markers =
level1: mark a test as a level1.(后面是一段说明)
level2: mark a test as a level2.
level3: mark a test as a level3.
user_management: mark feature.
user_management_create: mark feature.
这样,在执行的时候,我们在执行时,通过pytest -m 标签名,来运行相关标签标记的内容。
例如:
执行user模块用例:pytest -m user_management
执行正常用例:pytest -m level1