接口测试常用到allure报告,因其显示信息种类多且兼容框架丰富,但其不同附件的的格式会导致报告内容不友好,影响阅读,本文介绍两处优化内容。
- 过滤报告中suite模块显示的用例信息(多余状态码、请求URL等)
- 附件信息美化(txt文本格式优化)
现状如下图红框内容:
问题1:
通过F12查看,左侧框选内容显示j对应case执行结果中son文件的parameters字段值(如下图),因此只需要在生成报告/执行case时将该文件中的字段值赋空即可
方法:
def find_files(path, target='result.json'):
"""
先找到报告目录下所有符合结果的文件,为下文提供路径参数
:param path: 执行结果/报告文件中所有执行结果文件(包含result.josn(本次目标文件)以及其他附件文件)
:target: 文件特征,寻找包含
"""
path_list = []
for root, dirs, files in os.walk(path):
for file in files:
file_path = os.path.join(root, file)
if target in file_path:
path_list.append(file_path)
# clear_data(file_path)
return path_list
def clear_data(dir):
"""
报告美化,将result.json文件清除parameters字段数据
:param dir: 报告/执行结果中的result.json文件路径
:return:
"""
with open(dir, 'rb') as f:
data = json.load(f)
data['parameters'] = []
with open(dir, "w") as file:
json.dump(data, file)
file.close()
return True
至此,报告美化完成,用例名称旁不在展示多余字段值,结果如下:
问题2:附件中的内容显示样式有些是json格式,有些是纯文本格式,打开F12查看,附件为不同接口读取数据导致
找到执行结果/报告中对应的附件数据,发现json文件现实为json格式,txt文件显示为str格式,如下图所示:
因此,我们尝试将执行结果/报告的txt文件中的格式改为json格式,用以下方法实现:
def Txt_toJson(dir):
"""
报告美化,将附件中的txt文件内容转换成json格式
:param dir:txt文件路径
:return:
"""
try:
with open(dir, 'rb') as f:
json_data = json.load(f)
formatted_json = json.dumps(json_data, indent=4)
with open(dir, 'w') as w:
w.write(formatted_json)
w.close()
except:
print("该文件不是dict格式,无法转换")
return True
查看是否生效:
至此,报告优化完成,以上两个问题均已解决,如下图: