有些框架自动重写html标签,BeautifulReport底层框架的解析以及html报告页面元素的更改...

利用BeautifulReport 模块生成html报告

import BeautifulReport as br#引入包,之后设置一下别名

br = br.BeautifulReport(test_suit)#将用例集加入到对象中

br.report(description="beautifulreport",filename="brtest",log_path="")#执行用例统计结果,并生成测试报告#filename是测试报告的名称,log_path可以指定测试报告的存储目录,这个参数可选

如上操作report方法实现了用例的执行、用例执行结束的结果统计、生成测试报告等操作。

接下来就通过代码的跟踪来了解一下BeautifulReport 底层结构,便于我们了解代码,以后可以根据自己的实际需求来更改生成的报告。注意:读如下代码时一定要配合着底层代码一起阅读

2e6fe53b70ff7dcd20cb27a3d9aa65dd.png

1、self.suit.run

因为测试用例所在的类继承了unittest.TestCase,所以这里所调用的run方法是TestCase类中的run()方法,进入方法

f316caa9fc3f1904cefb7f85aa07019f.png

其中testPartExecutor是用来执行测试用例的具体方法的

e708bb6b47b0d79066b067707e5bf735.png

addSuccess当用例断言校验成功是会执行addSuccess方法,因为result对象是run()方法的参数,调用run的方法所属类继承了ReportTestResult类,而ReportTestResult最后又继承了TestResult类,所以这个addSuccess方法在TestResult这个类当中,但是因为ReportTestResult重写了TestResult中addSuccess的这个方法,所以最后跟踪到的是ReportTestResult类。

这个方法执行之后呢,继续执行stopTest()方法,这个方法也被ReportTestResult类重写

330ebce07637fd743f57356a6899e8ed.png

self.result_list.append这个方法将测试用例执行结果的信息写入到result_list中

ab6218e2366d224214aed0d73fe27960.png

859dd233b9cbc2a7deaa732a468db034.png

可以通过get_testcase_property这个方法增加属性信息,最后向result_list列表中增加属性值,也可以更改最初传过来的参数-(TestCase)测试用例实体类test的内容以便获取test的信息之后操作所需要的属性信息

2、self.stopTestRun

0dfd512125eca5109f3d01e578628cee.png

所有测试用例执行完成之后执行stopTestRun方法,方法体中有一个str(MakeResultJson(item))方法,首先实例化MakeResultJson类,将item数据加入这个类中,之后将对象转为字符串,通过str方法,又因为MakeResultJson里面重写了__repr__方法,所以在对象转为字符串是,str(MakeResultJson(item))先调用的str,之后str内部调用的__repr__,又因为MakeResultJson重写了__repr__,所以调用的是最新的__repr__方法

003ebbec1cb07286470a1d21e0fd356b.png

如上的这个方法keys的集合就是显示在html页面上面的关键字信息,所以可以通过更改此方法,从而更改html页面的元素信息

3、self.output_report()

64c536fb30c29e189cd2f2365f25367e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值