首页 > 其他 > 详细

allure的Tag标记(allure.story、allure.feature、severity)

时间:2021-03-05 09:48:56      阅读:209      评论:0      收藏:0      [点我收藏+]

  执行测试用例时,有的时候我们希望能够更加灵活的指定执行某些测试用例,pytest支持我们通过使用marker装饰器@pytest.mark来实现这个需求,而allure也同样提供了三种类似的方法来实现这个需求。

allure的三种方式:

  • BDD(行为驱动开发)的风格标记:Epics、Features、Stories;
  • Severity标签;
  • 自定义标签;

BDD markers:

  allure提供的两个装饰器:@allure.feature和@allure.story,可以将我们的用例根据Feature和Story分类,通过将name使用epic_ 开头的前缀就能够指定Feature和Story属于哪一个epic。

举个栗子:

# file_name: test_allure_tag_BDD.py


import pytest
import allure


def test_without_any_annotations_that_wont_be_executed():
    """
    没有任何注解
    :return:
    """
    pass


@allure.story(epic_1)
def test_with_epic_1():
    """
    通过指定name为epic_前缀的方式来指定story属于哪一个epic
    :return:
    """
    pass


@allure.story(story_1)
def test_with_story_1():
    """
    指定该测试用例属于的story
    :return:
    """
    pass


@allure.story(story_2)
def test_with_story_2():
    """
    指定该测试用例属于的story
    :return:
    """
    pass


@allure.feature(feature_2)
@allure.story(story_2)
def test_with_story_2_and_feature_2():
    """
    指定该测试用例属于的feature和story
    :return:
    """
    pass


if __name__ == __main__:
    pytest.main([-s, test_allure_tag_BDD.py])

可以通过下面命令行选项来指定想要执行的测试用例集,如果命令行选项的值有多个就用逗号分隔:

  • --allure-epics
  • --allure-features
  • --allure-stories

比如:

技术分享图片

  上面截图中可以看到我们通过指定--allure-stories为story_1、story_2来指定运行用例,结果中可以看到我们只执行了用例属于story_1和story_2的测试用例。

技术分享图片

  上面截图中,指定--allure-features为feature_2,--allure-stories为story_2,运行结果中能看到只运行了用例属于feature_2和story_2的测试用例。

Severity markers:

  使用@allure.severity来标识测试用例的严重等级,严重等级是allure.severity_level枚举中的一个。

用例等级:

allure划分用例等级为5个:

  • blocker:阻塞缺陷(功能未实现,无法下一步)
  • critical:严重缺陷(功能点缺失)
  • normal:一般缺陷(边界情况,格式错误)
  • minor:次要缺陷(界面错误与ui需求不符)
  • trivial:轻微缺陷(必须项无提示,或者提示不规范)

举个栗子:

file_name: test_allure_tag_severity.py


import pytest
import allure


def test_with_no_severity_label():
    """
    不定义任何severity标签
    :return:
    """
    pass


@allure.severity(allure.severity_level.TRIVIAL)
def test_with_trivial_severity():
    """
    定义severity标签为TRIVIAL
    :return:
    """
    pass


@allure.severity(allure.severity_level.NORMAL)
def test_with_normal_severity():
    """
    定义severity标签为NORMAL
    :return:
    """
    pass


@allure.severity(allure.severity_level.NORMAL)
class TestClassWithNormalSeverity(object):
    """
    定义类的severity标签为NORMAL
    """

    def test_inside_the_normal_severity_test_class(self):
        pass

    @allure.severity(allure.severity_level.CRITICAL)
    def test_inside_the_normal_severity_test_class_with_overriding_critical_severity(self):
        pass


if __name__ == __main__:
    pytest.main([-s, test_allure_tag_severity.py])

severity装饰器可以用在函数、方法和类上面。

通过使用--allure-severities 命令行选项指定运行哪些测试用例,如果命令行选项的值有多个就用逗号分隔。

比如:

技术分享图片

allure的Tag标记(allure.story、allure.feature、severity)

原文:https://www.cnblogs.com/lwjnicole/p/14484039.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!