首页 > 其他分享 >Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志,请求信息,返回信息等一文道尽

Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志,请求信息,返回信息等一文道尽

时间:2023-11-01 17:04:18浏览次数:46  
标签:如用例 name 自定义 filepath self 企业级 用例 allure logo

【自定义logo】

  1. 进入Allure的安装路径,找到config目录。
  2. 在config目录下,找到allure.yml文件,并打开该文件。
  3. 在allure.yml文件中,添加custom-logo-plugin选项。
  4. 进入Allure的安装路径,找到plugins目录下的custom-logo-plugin目录。
  5. 在custom-logo-plugin目录下,找到static目录,并将自己需要展示的Logo图片放到这个目录下。
  6. 编辑styles.css文件(如果存在的话),可以自定义Logo的大小、位置和样式等。

【自定义模块名,用例标题】

Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志,请求信息,返回信息等一文道尽_接口自动化测试

代码

@allure.story("登录模块")   #定义用例模块名称
@pytest.mark.parametrize("base_info,testcase", get_testcase_yaml("./testcases/test_Juhe_post_login_new.yaml"))
def test_post_login(self, base_info,testcase):
    #定义用例名称 如:登录失败的用例-密码不正确
    allure.dynamic.title(testcase["case_name"])
    

【用例详细信息】

上图,当点击用例的时候,右边会出现该用例测试结果相关的信息。这些信息如:用例日志log、接口名称、接口地址、请求方法、请求头等。他们都可以用attach的方式,加入到用例详细信息的列表。

Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志,请求信息,返回信息等一文道尽_allure报告自定义_02

代码:

api_name = case_info['api_name']
allure.attach(api_name, f'接口名称:{api_name}', allure.attachment_type.TEXT)
url = url_host + base_info['url']
allure.attach(api_name, f'接口地址:{url}', allure.attachment_type.TEXT)
method = case_info['method']
allure.attach(api_name, f'请求方法:{method}', allure.attachment_type.TEXT)
header = self.replace_load(case_info['header'])
allure.attach(api_name, f'请求头:{header}', allure.attachment_type.TEXT)

【中文网页标题 & 总览内容页标题】

Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志,请求信息,返回信息等一文道尽_企业级allure报告_03

中文网页标题:

Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志,请求信息,返回信息等一文道尽_allure报告自定义_04

总览内容页标题:

Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志,请求信息,返回信息等一文道尽_接口自动化测试_05

为了方便修改,可以写代码,在生成allure报告之后,自动完成上述设置。

我写了一个类,希望对大家有帮助。

class allureUtil:
    def __init__(self):
        self.title = conf.get_section_ALLURE_REPORT_CUSTOM("title")
        self.LogoFile = conf.get_section_ALLURE_REPORT_CUSTOM("LogoFile")
        self.reportFilePath = conf.get_section_ALLURE_REPORT_CUSTOM("reportFilePath")
        self.logoText = conf.get_section_ALLURE_REPORT_CUSTOM("logoText")
        self.reportContentTitle = conf.get_section_ALLURE_REPORT_CUSTOM("reportContentTitle")

    def doAllureCustom(self):
        self.replaceWebSiteTitle()
        self.replaceReportContentPageTitle()
        self.replaceFavicon()
        self.replaceLogosvg()

    def replaceFavicon(self):
        # 定义源文件和目标目录
        target_Favicon_filepath = self.reportFilePath + r"/"
        source_Favicon_filepath = "./imgs/favicon.ico"
        # 使用shutil.copy2()函数复制文件到目标目录并覆盖已存在的文件
        shutil.copy2(source_Favicon_filepath, target_Favicon_filepath)

    def replaceLogosvg(self):
        # 定义源文件和目标目录
        target_Logosvg_filepath = self.reportFilePath + r"/plugins/custom-logo/"
        source_Logosvg_filepath = r"./imgs/custom-logo.svg"
        # 使用shutil.copy2()函数复制文件到目标目录并覆盖已存在的文件
        shutil.copy2(source_Logosvg_filepath, target_Logosvg_filepath)

    def replaceReportContentPageTitle(self):
        # 获取文件的路径
        report_filepath = self.reportFilePath + r"/widgets/summary.json"
        try:
            file = open(report_filepath, 'r', encoding="utf-8")
            content = file.read()
            contentJson = json.loads(content)
            contentJson["reportName"] = self.reportContentTitle
            file.close()

            content = json.dumps(contentJson, ensure_ascii=False)
            file = open(report_filepath, 'w', encoding="utf-8")
            file.write(content)
        except Exception as e:
            logs.error(f'获取【{report_filepath}】文件数据时出现未知错误: {str(e)}')
        finally:
            file.close()


标签:如用例,name,自定义,filepath,self,企业级,用例,allure,logo
From: https://blog.51cto.com/u_16334171/8129724

相关文章

  • Django实战项目-学习任务系统-自定义URL拦截器
    接着上期代码框架,6个主要功能基本实现,剩下的就是细节点的完善优化了。首先增加URL拦截器,你不会希望没有登录用户就可以进入用户主页各种功能的,所以增加URL拦截器可以解决这个问题。Django框架本身也有URL拦截器,但是因为本系统用户模型跟Django框架本身用户模型不匹配,所以没有用,......
  • 搜狗输入法自定义输入短语
      ......
  • QT高级(1)QTableView自定义委托集合,一个类实现若干委托
    @目录1同系列文章2功能3源码1同系列文章QT中级(1)QTableView自定义委托(一)实现QSpinBox、QDoubleSpinBox委托QT中级(2)QTableView自定义委托(二)实现QProgressBar委托QT中级(3)QTableView自定义委托(三)实现QCheckBox委托并且将QCheckBox居中QT中级(4)QTableView自定义委托(四)实现QDateTi......
  • 创建自定义的 Angular 模块
    原文:https://www.jianshu.com/p/e90746c4e979在之前的一篇文章中,我们知道,从组件的角度看,一个Angular应用可以看作是按树形结构组织的组件集合。组件树的根结点,是主组件,作为全局组件的占位符,可以包含其他功能组件及其子组件。在Angular应用中,一个组件会承担一个应用功能的......
  • 直播平台源码,自定义下拉刷新控件
    直播平台源码,自定义下拉刷新控件 importFoundationimportUIKitimportSnapKitclassXRefreshControl:UIRefreshControl{  varobservation:NSKeyValueObservation?  varisLocalRefreshing:Bool=false  letindicator=UIProgressView(progressViewStyle:......
  • 如何建设企业级API网关​
    企业级API网关是现代软件架构中不可或缺的重要组成部分,它能够为整个系统提供安全可靠的入口,同时也是系统中不同业务模块之间交互的桥梁。API网关使得搭建一个新的应用服务变得简单、快捷、高效,同时,开发人员可以将更多的精力放在和业务紧密相关的工作中。企业级API网关主要作用包括......
  • 如何建设企业级API网关​
    企业级API网关是现代软件架构中不可或缺的重要组成部分,它能够为整个系统提供安全可靠的入口,同时也是系统中不同业务模块之间交互的桥梁。API网关使得搭建一个新的应用服务变得简单、快捷、高效,同时,开发人员可以将更多的精力放在和业务紧密相关的工作中。企业级API网关主要作用包括......
  • [win]Surface book2 添加自定义分辨率
    surfacebook213.5英寸 是3:2的屏幕,因为默认分辨率3000*2000实在是太高了,看字的时候眼睛有点吃不消 即使开启windows的自定义缩放也有点难受,同时在个性化里面,内置的分辨率居然没有3:2的了...加上windows的文字渲染机制,在高分辨率下开启cleartype后汉字开始有虚边了,所以决定......
  • Unreal入门,通过蓝图自定义Pawn移动
    1.自定义Pawn新建Pawn添加相机和网格体网格体设置(新建项目自带资源里随便挑一个)相机设置(主要是旋转和位移,随便设置下,大概能达到俯视效果就行,其它效果也可以,只要能看到自己的Pawn,不然不知道怎么动的)2.应用自定义Pawn(默认GameMode不可编辑,不能直接替换Default......
  • 做物联网的有福了,一个开源的、企业级的物联网平台,它集成了设备管理、数据安全通信、消
     去关注、不迷路一、项目概述JetLinksIOT是一个开源的、企业级的物联网平台,它集成了设备管理、数据安全通信、消息订阅、规则引擎等一系列物联网核心能力,支持以平台适配设备的方式连接海量设备,采集设备数据上云,提供云端API,通过调用云端API实现远程控制。JetLinks物联网平台......