背景:执行完自动化测试后,希望将获取到的测试结果数据替换html模板文件,以生成测试报告。
解决方案:使用python语言的jinja2组件,可以对模板文件进行各种数据处理。
参考链接:
http://docs.jinkan.org/docs/jinja2/intro.html
https://www.jianshu.com/p/3bd05fc58776
处理过程:
1-编写html模板文件,包含需要替换的变量及相关模板控制语句
2-将需要动态替换的数据,以json的形式存储在变量中
3-使用jinja2组件相关功能,读取模板文件并设置变量对应的value
相关代码:
1-html模板文件
if控制语句:
循环控制语句:
2-获取json形式的结果数据(以下仅提供如何转换成json数据,具体数据值的获取依业务而来)
def crtJsonData_case(id,status,caseName,errorMessage,caseinfo,caseSpendTime):
data = {
'id': id,
'status': status,
'caseName': caseName,
'errorMessage': errorMessage,
'caseinfo': caseinfo,
'caseSpendTime': caseSpendTime
}
return json.dumps(data)
3-使用jinja2组件进行模板替换
env = Environment(loader=FileSystemLoader('d://'))
tpl = env.get_template('template.html')
with codecs.open('report.html', 'w', encoding='utf8') as fout:
render_content = tpl.render(spendTime=summaryjsondata['spendTime'],jobRst=summaryjsondata['jobRst'],\
sucRate=summaryjsondata['sucRate'],testcase_suc=summaryjsondata['testcase_suc'],\
testcaseTotalRun=summaryjsondata['testcaseTotalRun'],falseCount=summaryjsondata['falseCount'],datalist=casejsondata)
fout.write(render_content)
完整的python脚本会读取template.html文件,并将测试结果数据替换模板文件生成新的文件report.html。生成的report.html文件如下所示。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有