一、先看看三个装饰器源码
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
.issue("https://v.youku.com/v_show/id_XNDk5MDQyODI1Ng==.html", "youku 三个金币")
def test_issue():
pass
.link("https://www.baidu.com/", link_type=LinkType.LINK, name="baidu")
def test_link():
pass
.testcase("")
def test_testCase():
pass
运行结果,查看allure报告
test_issue
test_link
test_testCase
三、总结
三个装饰器的作用是一样的,都是超链接跳转,至于如何使用,请视自己情况,调整