在上一篇中已经写了如何取定制logo,今天就来说说如何定制好自己生成报告的标题,就是下图的两个地方
修改报告浏览器窗口的标题
这里的浏览器窗口标题就是打开报告后浏览器显示的名字,就是图下这个位置的地方
我们知道,生成Allure报告后,在本地会有三个文件夹,在html文件夹下面会有个index.html文件,打开文件就可以看到第5行有个
首先就要先获取你本地的index.html文件地址,把他赋值给report_title_filepath, 然后读取文件的内容再循环遍历文件的每一行内容,把带有“Allure Report" 的文案全部替换成新的,也就是你自定义的标题,代码如下
# 设置报告的浏览器窗口的标题
def set_windows_title(new_title):
""" 设置打开的 Allure 报告的浏览器窗口标题文案
@param new_title: 需要更改的标题文案 【 原文案为:Allure Report 】
@return: 没有返回内容,调用此方法传入需要更改的文案即可修改窗体标题温拿
"""
# report_title_filepath:这里主要是去拿到你的HTML测试报告的绝对路径【记得换成你自己的】
report_title_filepath = r"C:\Work_File\autoPytest\allure-report\html\index.html"
# 定义为只读模型,并定义名称为: f
with open(report_title_filepath, 'r+', encoding="utf-8") as f:
# 读取当前文件的所有内容
all_the_lines = f.readlines()
f.seek(0)
print(f.seek(0))
f.truncate()
print(f.truncate())
# 循环遍历每一行的内容,将 "Allure Report" 全部替换为 → new_title(新文案)
for line in all_the_lines:
f.write(line.replace("Allure Report", new_title))
# 关闭文件
f.close()
测试下调用函数查看结果
set_windows_title("Report")
可以看到原来index.html文件的的”Allure Report" 替换成了”Report"
打开报告也可以看到标题也变了
修改报告里面的标题
先找到html—>widgets—>summary.json文件,其中summary.json文件的reportName就是这个报告的标题,默认就是Allure Report, 我们要改就是改这个字段的名字就OK
首先就是先获取这个文件的路径,赋值给title_filepath
title_filepath = r"C:\***\allure-report\html\widgets\summary.json"
然后写个方法获取summary.json的内容,需要先导入json模块
import json
把新的数据重新写入到summary.json文件中
这样就可以自定义修改了标题啦,可以直接运行下这个代码,可以看到summary.json的值变了
重新打开html报告文件就可以看到标题已经变成你修改后的样子
附上源码:
import json
class SetReportTittle:
def __init__(self, name):
self.title_filepath = r"C:\Work_File\autoPytest\allure-report\html\widgets\summary.json"
self.name = name
self.dict_data = self.get_json_data()
def get_json_data(self):
with open(self.title_filepath, 'rb') as f:
# 加载json文件中的内容给params
params = json.load(f)
# 修改内容
params['reportName'] = self.name
# 将修改后的内容保存在dict中
new_data = params
# 关闭json读模式
f.close()
# 返回dict字典内容
return new_data
def write_json_data(self):
# 定义为写模式,名称定义为r
with open(self.title_filepath, 'w', encoding="utf-8") as r:
# 将dict写入名称为r的文件中
json.dump(self.dict_data, r, ensure_ascii=False, indent=4)
# 关闭json写模式
r.close()
if __name__ == '__main__':
SetReportTittle("API Auto test report").write_json_data()
如果你想生成报告后立即就更改这个标题那就在生成报告后面直接多添加两行代码就可以了
本文先更新到这,要是对你也有帮助可以点赞评论哦~~