Python Allure注解释义/装饰器解释和allure的方法(上传文件等)使用示例

觉得有帮助的小伙伴可以点个赞!分享给更多人!

Allure的装饰器解释

前置条件

allure-pytest==2.9.45
allure-python-commons==2.9.45

@allure.parent_suite,@allure.suite,@allure.sub_suite

@allure.parent_suite,@allure.suite,@allure.sub_suite对应的是
allure报告中的测试套的三个级别.爷爷父亲儿子.然后下一级就是测用例的标题.

在这里插入图片描述

@allure.epic, @allure.feature, @allure.story,@allure.title

@allure.epic, @allure.feature, @allure.story,@allure.title对应
功能中的一级菜单,二级菜单,三级菜单,用例标题

在这里插入图片描述

@allure.id,@allure.link,@allure.label,@allure.issue,@allure.description,@allure.severity,@allure.tag,@allure.testcase,@allure.description_html

@allure.id 用例id,@allure.link 用例的超链接,@allure.label 用例的标签
@allure.issue 记录用例的问题(超链接),@allure.description 用例的描述
@allure.severity 用例的优先级,@allure.tag 用例的标记,@allure.testcase 记录用例的地址(超链接)
@allure.description_html 用例的描述的网址(超链接),若存在description_html则@allure.description不显示

在这里插入图片描述

@allure.description_html不存在时

在这里插入图片描述

@allure.severity的参数说明

优先级的参数,也可以直接用后面的字符

class Severity(str, Enum):
    BLOCKER = 'blocker'
    CRITICAL = 'critical'
    NORMAL = 'normal'
    MINOR = 'minor'
    TRIVIAL = 'trivial'

在这里插入图片描述

@allure.link的参数说明
class LinkType(object):
    LINK = 'link'
    ISSUE = 'issue'
    TEST_CASE = 'test_case'

可以看到有三种link类型,link也可以是 issue
在这里插入图片描述

调试的示例代码

import allure
import pytest
from allure_commons.types import LinkType, Severity


@allure.parent_suite('我是parent_suite')
@allure.suite('我是suite')
@allure.sub_suite('我是sub_suite')
@allure.epic('我是epic')
@allure.feature('我是feature')
@allure.story('我是story')
class TestAllureDemo:
    @allure.id('我是id')
    @allure.title('我是title')
    @allure.link('https://www.baidu.com/', LinkType.ISSUE, '我是link_ISSUE')
    @allure.label('我是label')
    @allure.issue('https://www.baidu.com/', '我是issue')
    @allure.description('我是description')
    @allure.severity(Severity.BLOCKER)
    @allure.tag('我是tag')
    @allure.testcase('https://www.baidu.com/', 'testcase')
    def test_01(self):
        self.assert_one(1, 1)

    @allure.step('我是断言')
    def assert_one(self, a, b):
        assert a == b

    @allure.id('我是id')
    @allure.title('我是title')
    @allure.link('https://www.baidu.com/', LinkType.LINK, '我是link')
    @allure.label('我是label')
    @allure.issue('https://www.baidu.com/', '我是issue')
    @allure.description('我是description')
    @allure.severity('我是severity')
    @allure.tag('我是tag')
    @allure.testcase('https://www.baidu.com/', '我是testcase')
    def test_02(self):
        allure.dynamic.mro()
        allure.dynamic.title('我是修改后的title')
        allure.dynamic.link('https://www.baidu.com/', LinkType.LINK, '我是修改后的link')
        allure.dynamic.label('我是修改后的label')
        allure.dynamic.issue('https://www.baidu.com/', '我是修改后的issue')
        allure.dynamic.description('我是修改后的description')
        allure.dynamic.severity('我是修改后的severity')
        allure.dynamic.tag('我是修改后的tag')
        allure.dynamic.testcase('https://www.baidu.com/', '我是修改后的testcase')
        assert 1 > 1

allure.dynamic的用法–动态修改报告的属性值

allure.dynamic主要是用于动态的修改用例在报告中的一些参数,下面列举了所有的可改的参数

    @allure.id('我是id')
    @allure.title('我是title')
    @allure.link('https://www.baidu.com/', LinkType.LINK, '我是link')
    @allure.label('我是label')
    @allure.issue('https://www.baidu.com/', '我是issue')
    @allure.description('我是description')
    @allure.severity('我是severity')
    @allure.tag('我是tag')
    @allure.testcase('https://www.baidu.com/', '我是testcase')
    def test_02(self):
        allure.dynamic.mro()
        allure.dynamic.title('我是修改后的title')
        allure.dynamic.link('https://www.baidu.com/', LinkType.LINK, '我是修改后的link')
        allure.dynamic.label('我是修改后的label')
        allure.dynamic.issue('https://www.baidu.com/', '我是修改后的issue')
        allure.dynamic.description('我是修改后的description')
        allure.dynamic.severity('我是修改后的severity')
        allure.dynamic.tag('我是修改后的tag')
        allure.dynamic.testcase('https://www.baidu.com/', '我是修改后的testcase')
        assert 1 > 1

示例
在这里插入图片描述

allure方法

allure.attach.flie 上传文件

    def allure_attach_file(file_path):
        info = '上传文件&'
        # 文件路径,文件名
        allure.attach.file(file_path, f"{info}{os.path.basename(file_path)}")

效果图

allure.attach 上传文本/附件

    def allure_attach_text(body, name):
    	# 文本内容,文本名
        allure.attach(body, name)

例如 allure_attach_body(“我是测试文本”, “测试文本111”)
在这里插入图片描述

	allure.attach(json, 'Json数据', allure.attachment_type.JSON)
可以指定文本类型allure.attachment_type.JSON,获取指定类型的格式(美化效果).

在这里插入图片描述
官方的一些支持的文本类型

class AttachmentType(Enum):

    def __init__(self, mime_type, extension):
        self.mime_type = mime_type
        self.extension = extension

    TEXT = ("text/plain", "txt")
    CSV = ("text/csv", "csv")
    TSV = ("text/tab-separated-values", "tsv")
    URI_LIST = ("text/uri-list", "uri")

    HTML = ("text/html", "html")
    XML = ("application/xml", "xml")
    JSON = ("application/json", "json")
    YAML = ("application/yaml", "yaml")
    PCAP = ("application/vnd.tcpdump.pcap", "pcap")

    PNG = ("image/png", "png")
    JPG = ("image/jpg", "jpg")
    SVG = ("image/svg-xml", "svg")
    GIF = ("image/gif", "gif")
    BMP = ("image/bmp", "bmp")
    TIFF = ("image/tiff", "tiff")

    MP4 = ("video/mp4", "mp4")
    OGG = ("video/ogg", "ogg")
    WEBM = ("video/webm", "webm")

    PDF = ("application/pdf", "pdf")

Allure 命令

点我去查看,Allure命令,生成并打开报告,指定报告的ip和端口等(多系统通用)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Franciz小测测

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值