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

posted @ 2021-11-22 18:00  cavan丶keke  阅读(578)  评论(1编辑  收藏  举报