接口测试框架httprunner使用自定义extentreports报告模板遇到的问题小结
前置条件:
httprunner版本:HttpRunner 3.0.1
python版本:3.8
运行环境:Mac
一、很多文章里面都说http runner包里面自带了自定义的报告模板,但是这个版本没有,于是网上下载了自定义的extentreports报告模板
运行加参数: --report-template reports/template/extent-theme-template_new.html
报错: jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'meta_data'
解决方案:出现问题的原因是不同版本的httprunner,运行case的结果汇总的数据结构有些不同,需根据实际版本情况进行调整
1.先根据httprunner对外提供的运行用例的接口runner.run(),查看testcase运行的结果汇总的数据结构
from httprunner.api import HttpRunner
def print_summary_result(path_or_tests):
runner = HttpRunner(
failfast=True,
save_tests=True,
log_level="INFO",
log_file="test.log"
)
summary = runner.run(path_or_tests)
return summary
2.根据运行的结果汇总的数据结构,修过extentreports报告模板的取值数据的字段信息,我遇到的情况是打印出来的结果的结构跟模板中的字段取值结构不同
二、报告中无法加载css和js
解决方案:下载对应的css和js文件到本地,然后在模板中引用
1.在https://github.com/anshooarora/extentreports-java/tree/master/dist下,下载对应的css和js文件到本地,放到项目中的指定目录下,如
2.修过自定义的模板文件,修过如下