Bootstrap

Pytest 学习 @allure.severity 标记用例级别的使用

一、前言

使用@allure.serverity注解,可以在allure报告中清晰的看到不同级别用例情况

使用等级介绍

allure提供的枚举类

二、等级介绍

二、等级介绍
blocker:阻塞缺陷(功能未实现,无法下一步)
critical:严重缺陷(功能点缺失)
normal: 一般缺陷(边界情况,格式错误)
minor:次要缺陷(界面错误与ui需求不符)
trivial: 轻微缺陷(必须项无提示,或者提示不规范)
这里和禅道的bug级别很像,个中使用细节根据自己情况使用

示例代码如下:

复制 
# -*- coding: utf-8 -*-
# @Time    : 2020/12/13 13:48
# @Author  : longrong.lang
# @FileName: test_severity.py
# @Software: PyCharm
# @Cnblogs :
import allure


@allure.severity(allure.severity_level.BLOCKER)
def test_case1():
    print("case1")


@allure.severity(allure.severity_level.CRITICAL)
def test_case2():
    print("case2")


@allure.severity(allure.severity_level.NORMAL)
def test_case3():
    print("case3")


@allure.severity(allure.severity_level.MINOR)
def test_case4():
    print("case4")


@allure.severity(allure.severity_level.TRIVIAL)
def test_case5():
    print("case5")

def test_case6():
    """ 没标记 severity 的用例默认为 normal"""
    print("case6")

三、allure报告
测试用例详情


统计图表


四、清空历史报告
如何清除历史报告?可能有的同学会说,我直接手动删除,当前脚本目录下生成的allure目录就好了呀。

哈哈,咱们能不能不这么野蛮?

下面我们来举例说明,示例代码如下:

# -*- coding: utf-8 -*-
# @Time    : 2020/12/13 15:34
# @Author  : longrong.lang
# @FileName: test_clean.py
# @Software: PyCharm
# @Cnblogs 

def test_1():
    print("test_1 文件的测试用例1")


def test_2():
    print("test_1 文件的测试用例2")


使用命令行执行
pytest test_clean.py --alluredir=./allure
1.
测试报告如下显示


对刚才的示例代码修改如下:

# -*- coding: utf-8 -*-
# @Time    : 2020/12/13 15:34
# @Author  : longrong.lang
# @FileName: test_clean.py
# @Software: PyCharm
# @Cnblogs :

def test_111():
    print("test_111 文件的测试用例1")


def test_222():
    print("test_222 文件的测试用例2")


执行完后,测试报告如下显示:


细心的小伙伴会发现,包含历史两条,这TM居然是叠加呀,正常不应该只是显示我修改后的部分吗?那该怎么解决呢

五、clean-alluredir 参数
pytest 提供了 --clean-alluredir 参数可以清空 allure 报告生成的目录
使用如下命令:


# 先运行第一个
pytest test_clean.py --alluredir=./allure

# 再运行第二个,此时应该希望 allure 报告只有 test_2.py 的测试用例
pytest test_clean.py --alluredir=./allure --clean-alluredir

再来看测试结果显示

;