引言
在生成allure测试报告之后,总觉得报告的窗口标题和Overview报告标题怪怪的,需要修改!修改后的效果图如下:
于是就开始动手吧~
1、修改窗口title
思路:修改窗口标题,最直接的方法就是修改查看报告的入口--index.html了!修改<title></title>标签即可,于是就可以使用open方法进行操作。
代码如下:
# 修改报告的窗口标题
def rename_window_title(window_title):
# 读取html文件
with open('./report-html/index.html', 'r+', encoding='utf-8') as f:
# 先保存html的内容
lines = f.readlines()
# 定义下标变量,方便后边的数据更替
i = -1
for line in lines:
i = i + 1
# 寻找html页面的title标签
if '<title>' in line:
# 定义原始标题变量
old_title = ''
# html里的title标签之前有4个空格,所以从下标为11处截取
for s in line[11:]:
# 若字符为<则退出循环
if s == '<':
break
# 原始标题-拨云见日
old_title += s
# 正式替换标题
lines[i] = line.replace(old_title, window_title)
# 修改标题后的html内容
new_lines = lines
print('修改后的html内容:', new_lines)
# 指针放在文件开始的地方
f.seek(0)
# 清空原来的html文件内容
f.truncate()
# 将修改标题后的内容重新写入html文件
for new_line in new_lines:
f.write(new_line)
2、修改Overview标题
思路:首先要知道改哪里,从其他道友那里得知,修改这块的标题,只需要修改下图中的summary.json文件的reportName字段值即可。
代码如下:
import json
# 修改报告的Overview标题
def rename_overview_title(overview_title):
with open('./report-html/widgets/summary.json', 'r+', encoding='utf-8') as f:
# 读取文件
params = json.load(f)
# 修改新标题
params['reportName'] = overview_title
# 修改后的json数据
new_params = params
with open('./report-html/widgets/summary.json', 'w+', encoding='utf-8') as f:
"""
目的: 覆盖原始json文件
参数概要: ensure_ascii=False,设置后写入json的中文以明文方式显示,否则会以ascall码显示
"""
json.dump(new_params, f, ensure_ascii=False)
3、调用函数实现标题的修改
import json
# 修改报告的窗口标题
def rename_window_title(window_title):
# 读取html文件
with open('./report-html/index.html', 'r+', encoding='utf-8') as f:
# 先保存html的内容
lines = f.readlines()
# 定义下标变量,方便后边的数据更替
i = -1
for line in lines:
i = i + 1
# 寻找html页面的title标签
if '<title>' in line:
# 定义原始标题变量
old_title = ''
# html里的title标签之前有4个空格,所以从下标为11处截取
for s in line[11:]:
# 若字符为<则退出循环
if s == '<':
break
# 原始标题-拨云见日
old_title += s
# 正式替换标题
lines[i] = line.replace(old_title, window_title)
# 修改标题后的html内容
new_lines = lines
print('修改后的html内容:', new_lines)
# 指针放在文件开始的地方
f.seek(0)
# 清空原来的html文件内容
f.truncate()
# 将修改标题后的内容重新写入html文件
for new_line in new_lines:
f.write(new_line)
# 修改报告的Overview标题
def rename_overview_title(overview_title):
with open('./report-html/widgets/summary.json', 'r+', encoding='utf-8') as f:
# 读取文件
params = json.load(f)
# 修改新标题
params['reportName'] = overview_title
# 修改后的json数据
new_params = params
with open('./report-html/widgets/summary.json', 'w+', encoding='utf-8') as f:
"""
目的: 覆盖原始json文件
参数概要: ensure_ascii=False,设置后写入json的中文以明文方式显示,否则会以ascall码显示
"""
json.dump(new_params, f, ensure_ascii=False)
if __name__ == '__main__':
# 修改报告的窗口标题
rename_window_title('UI自动化初级测试')
# 修改报告的Overview标题
rename_report_title('测试训练系统-UI测试报告')