一、先看看三个装饰器源码

def link(url, link_type=LinkType.LINK, name=None):
return safely(plugin_manager.hook.decorate_as_link(url=url, link_type=link_type, name=name))


def issue(url, name=None):
return link(url, link_type=LinkType.ISSUE, name=name)


def testcase(url, name=None):
return link(url, link_type=LinkType.TEST_CASE, name=name)

二、知识点

  • issue()和testcase()其实调用的也是link(),只是link_type不一样
  • 必传参数 url:跳转的链接
  • 可选参数 name:显示在allure报告的名字,如果不传就是显示完整的链接;建议传!!不然可读性不高
  • 可以理解成:三个方法是一样的,我们都提供跳转链接和名字,只是链接的type不一样,最终显示出来的样式不一样而已【type不一样,样式不一样】
  • 如果你喜欢,只用@allure.link()也可以
  • 而出现三个装饰器的原因是为了更好地将链接分类【访问连接、Bug链接、测试用例链接】

示例代码如下:

# -*- coding: utf-8 -*-
# @Time : 2020/12/12 15:49
# @Author : longrong.lang
# @FileName: test_allurelink.py
# @Software: PyCharm
# @ :q
import allure
from allure_commons.types import LinkType


@allure.issue("https://v.youku.com/v_show/id_XNDk5MDQyODI1Ng==.html", "youku 三个金币")
def test_issue():
pass


@allure.link("https://www.baidu.com/", link_type=LinkType.LINK, name="baidu")
def test_link():
pass


@allure.testcase("")
def test_testCase():
pass

运行结果,查看allure报告


  • test_issue
    Pytest学习(二十二)- allure之@allure.link()、@allure.issue()、@allure.testcase()的使用_Pytest 学习



  • test_link
    Pytest学习(二十二)- allure之@allure.link()、@allure.issue()、@allure.testcase()的使用_java_02



  • test_testCase
    Pytest学习(二十二)- allure之@allure.link()、@allure.issue()、@allure.testcase()的使用_Pytest 学习_03



三、总结

三个装饰器的作用是一样的,都是超链接跳转,至于如何使用,请视自己情况,调整




Pytest学习(二十二)- allure之@allure.link()、@allure.issue()、@allure.testcase()的使用_java_04