pytest之allure(六)之集成缺陷管理系统和测试管理系统(@allure.link()、@allure.issue()、@allure.testcase())
前言
allure测试报告框架提供了@allure..link、@allure.issue、@allure.testcase 这三个装饰器,可以用来与缺陷管理系统和测试管理系统集成。
三个装饰器源码
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链接、测试用例链接】
举例
# file_name: test_allure_links.py import pytest import allure @allure.link("https://www.cnblogs.com/lwjnicole/") def test_with_link(): """ @allure.link() 指定与测试用例关联的链接,比如需求地址 :return: """ assert True @allure.link("https://www.cnblogs.com/lwjnicole/", name="点我访问") def test_with_link_named(): """ @allure.link() 通过指定name的方式来指定关联链接,测试报告中用name替换实际URL展示 :return: """ assert True @allure.issue("https://www.cnblogs.com/lwjnicole/p/14472386.html") def test_with_issue_link(): """ @allure.issue() 可以与缺陷管理系统相关联,指定与该测试用例相关联的bug链接地址 :return: """ assert True @allure.testcase("https://www.cnblogs.com/lwjnicole/p/14466997.html") def test_with_testcase_link(): """ @allure.testcase() 可以与测试用例管理工具相关联,指定与该测试用例关联的测试用例地址 :return: """ assert True if __name__ == '__main__': pytest.main(['-s', 'test_allure_links.py'])
执行命令:
> pytest test_allure_links.py --alluredir=./report/result_data
> allure serve ./report/result_data
查看测试报告展示效果:
1、装饰器: @allure.link("https://www.cnblogs.com/lwjnicole/")
@allure.link() 指定与测试用例关联的链接,比如需求地址
2、装饰器: @allure.link("https://www.cnblogs.com/lwjnicole/", name="点我访问")
@allure.link() 通过指定name的方式来指定关联链接,测试报告中用name替换实际URL展示
3、装饰器: @allure.issue("https://www.cnblogs.com/lwjnicole/p/14472386.html")
@allure.issue() 可以与缺陷管理系统相关联,指定与该测试用例相关联的bug链接地址
这个测试报告中可以看到,通过装饰器@allue.issue可以指定bug的链接地址,并且会在测试报告的Links部分展示,链接的左边会带上一个bug的小图标。
4、装饰器: @allure.testcase("https://www.cnblogs.com/lwjnicole/p/14466997.html")
@allure.testcase() 可以与测试用例管理工具相关联,指定与该测试用例关联的测试用例地址
总结
综上,allure可以使用@allure..link、@allure.issue、@allure.testcase 这三个装饰器,与缺陷管理系统和测试管理系统进行集成,做到更好的自动化管理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!