在倾城报告中,我如何通过python与名称和链接建立链接

时间:2017-09-18 08:56:24

标签: python allure

我想创建包含该项目的名称和链接的链接。

报告中的示例我有链接名称 - 任务55188,此链接将我重定向到'http://tfs.com/tfs/company/rnd/QA/_testManagement?planId=41890&suiteId=55188&_a=tests'

但我如何在python代码中创建它?

3 个答案:

答案 0 :(得分:0)

您可以在项目内部创建allure_wrapper.py文件,并使用带有任务编号/任务标题的装饰器进行测试。

例如:

在您的项目中,您有任务列表:

constants.py

TASKS = {
    '55188': 'Test task'
}

导入此列表并在allure_wrapper.py中用于任务装饰器

allure_wrapper.py

from constants import TASKS
from allure import link, issue, story

# Specify your link pattern
TFS_LINK_PATTERN = 'http://tfs.com/tfs/company/rnd/QA/_testManagement?planId=41890&suiteId={}&_a=tests'

def task_link(task_id):
return link(TFS_LINK_PATTERN.format(task_id), name=f'{item_type} {task_id}')

def task_links(links):
decos = []
for link in links:
    decos.append(task_link(link))
    decos.append(story(TASKS[link]))
return compose_decos(decos)

def compose_decos(decos):
    def composition(func):
        for deco in reversed(decos):
            func = deco(func)
        return func
    return composition

使用创建的装饰器附加链接:

from allure_wrapper import task_links

@task_links(['55188'])
def test_task_link():
    # do smth

因此,您的吸引力报告中将提供一个可点击的链接

答案 1 :(得分:0)

我为此做了一个解决方法:

allure.attach('<head></head><body><a href="' + your_link + '">Link to ...</a></body>', 'Logs', allure.attachment_type.HTML)

答案 2 :(得分:0)

带装饰器

某些 allure-python 集成允许使用 cmd 行开关设置链接模式。例如:

诱惑-pytest:

--allure-link-pattern=http://tfs.com/tfs/company/rnd/QA/_testManagement?planId=41890&suiteId={}&_a=tests

诱惑行为:

-D AllureFormatter.link_pattern=http://tfs.com/tfs/company/rnd/QA/_testManagement?planId=41890&suiteId={}&_a=tests

当您设置链接模式时,您不需要像 Viktoriia 的回答那样创建自己的 allure_wrapper.py,可以直接使用 @allure.link:55188


动态的

除了上述装饰器方法之外,还有一个 Dynamic 类可用于在运行时动态地添加指向报告的链接。例如:

import allure

def some_test_function():
    allure.dynamic.link('http://tfs.com/tfs/company/rnd/QA/_testManagement?planId=41890&suiteId=55188&_a=tests', name='55188')

某些集成可能不支持动态链接,并且在调用 allure.dynamic.link 时不会执行任何操作。例如,我必须通过 implementing the relevant allure hooks in a PR 添加对 allure-behave 的支持。

我们使用动态链接有条件地为失败的测试添加 Jira 缺陷链接。当测试失败时,我们会创建一个带有特定于测试的标签的 Jira 缺陷。下次测试失败时,它会查询 Jira REST API 以查找与标签匹配的所有问题并将它们链接起来。这样我们就可以在 Jira 中添加/删除测试链接,避免在测试代码中摸索装饰器。