解读并加工BeautifulReport 报告模板

使用unittest框架的脚本执行完成后,会生成一个html格式的报告

这个报告是提前制作了一个html的模板,然后将对应的内容写入到模板中,并生成一个最终的报告,这个报告模板在通过 pip install BeautifulReport后,就会在下面路径中存在:

C:\Program Files\Python37\Lib\site-packages\BeautifulReport\template,这个html模板可以将里面的一些表格属性名称修改为适合自己的名称,例如:

 1 <body class="gray-bg">
 2 <div class="row  border-bottom white-bg dashboard-header">
 3     <div class="col-sm-12 text-center">
 4         <span style="${title}">自动化测试报告</span>
 5     </div>
 6 </div>
 7 <div class="wrapper wrapper-content animated fadeInRight">
 8     <div class="row">
 9         <div class="col-sm-12">
10             <div class="ibox float-e-margins">
11                 <div class="ibox-title">
12                     <h5 style="${sub-title}">报告汇总</h5>
13                     <div class="ibox-tools">
14                         <a class="collapse-link">
15                             <i class="fa fa-chevron-up"></i>
16                         </a>
17                         <a class="close-link">
18                             <i class="fa fa-times"></i>
19                         </a>
20                     </div>
21                 </div>
22                 <div class="ibox-content">
23                     <div class="row">
24                         <div class="col-sm-6 b-r" style="height:350px">
25                             <form class="form-horizontal">
26                                 <div class="form-group">
27                                     <label class="col-sm-2 control-label text-info">测试目的:</label>
28                                     <div class="col-sm-5">
29                                         <span class="form-control" id="testName"></span>
30                                     </div>
31                                 </div>
32                                 <div class="form-group">
33                                     <label class="col-sm-2 control-label text-info">用例总数:</label>
34                                     <div class="col-sm-5">
35                                         <span class="form-control" id="testAll"></span>
36                                     </div>
37                                 </div>
38                                 <div class="form-group">
39                                     <label class="col-sm-2 control-label text-navy">用例通过:</label>
40                                     <div class="col-sm-5">
41                                         <span class="form-control" id="testPass"></span>
42                                     </div>
43                                 </div>
44                                 <div class="form-group">
45                                     <label class="col-sm-2 control-label text-danger">用例失败:</label>
46                                     <div class="col-sm-5">
47                                         <span class="form-control text-danger" id="testFail"></span>
48                                     </div>
49                                 </div>
50                                 <div class="form-group">
51                                     <label class="col-sm-2 control-label text-warning">用例跳过:</label>
52                                     <div class="col-sm-5">
53                                         <span class="form-control text-warning" id="testSkip"></span>
54                                     </div>
55                                 </div>
56                                 <div class="form-group">
57                                     <label class="col-sm-2 control-label text-info">开始时间:</label>
58                                     <div class="col-sm-5">
59                                         <span class="form-control" id="beginTime"></span>
60                                     </div>
61                                 </div>
62                                 <div class="form-group">
63                                     <label class="col-sm-2 control-label text-info">运行时间:</label>
64                                     <div class="col-sm-5">
65                                         <span class="form-control" id="totalTime"></span>
66                                     </div>
67                                 </div>
68                             </form>
69                         </div>
70                         <div class="col-sm-6">
71                             <div style="height:350px" id="echarts-map-chart"></div>
72                         </div>
73                     </div>
74                 </div>
75             </div>
76         </div>
77     </div>

那么通过这个报告生成,都可以做哪些呢,比较指定存储路径,报告主题等,下面直接看BeautifulReport代码,发现要对这个类实例化时,必须要先传入一个suite(也就是测试用例集),然后调用这个类的report方法进行报告生成时,可以传入哪些参数:description, filename: str = None, report_dir=‘.‘, log_path=None, theme=‘theme_default‘,除去 log_path废弃后,可以有4个参数进行传入,每个参数的具体用法在代码中都有详细说明,这里不再重复。

 1 class BeautifulReport(ReportTestResult, PATH):
 2     img_path = ‘img/‘ if platform.system() != ‘Windows‘ else ‘img\\‘
 3
 4     def __init__(self, suites):
 5         super(BeautifulReport, self).__init__(suites)
 6         self.suites = suites
 7         self.report_dir = None
 8         self.title = ‘自动化测试报告‘
 9         self.filename = ‘report.html‘
10
11     def report(self, description, filename: str = None, report_dir=‘.‘, log_path=None, theme=‘theme_default‘):
12         """
13             生成测试报告,并放在当前运行路径下
14         :param report_dir: 生成report的文件存储路径
15         :param filename: 生成文件的filename
16         :param description: 生成文件的注释
17         :param theme: 报告主题名 theme_default theme_cyan theme_candy theme_memories
18         :return:
19         """
20         if log_path:
21             import warnings
22             message = (‘"log_path" is deprecated, please replace with "report_dir"\n‘
23                        "e.g. result.report(filename=‘测试报告_demo‘, description=‘测试报告‘, report_dir=‘report‘)")
24             warnings.warn(message)
25
26         if filename:
27             self.filename = filename if filename.endswith(‘.html‘) else filename + ‘.html‘
28
29         if description:
30             self.title = description
31
32         self.report_dir = os.path.abspath(report_dir)
33         os.makedirs(self.report_dir, exist_ok=True)
34         self.suites.run(result=self)
35         self.stopTestRun(self.title)
36         self.output_report(theme)
37         text = ‘\n测试已全部完成, 可打开 {} 查看报告‘.format(os.path.join(self.report_dir, self.filename))
38         print(text)

下面列举调用这个模块的实现方法:

 1 # -*- coding:utf-8 -*-
 2 ‘‘‘
 3 # @Time    : 2019/12/3 16:50
 4 # @Author  : nihaoya
 5 # @FileName: WeiBo_test.py
 6 # @Software: PyCharm
 7 ‘‘‘
 8 import os
 9 import time
10 import unittest
11 from BeautifulReport import BeautifulReport as bf
12
13 class WeiBo(unittest.TestCase):
14 此处省略
15
16 if __name__ == "__main__":
17     suite = unittest.TestLoader().loadTestsFromTestCase(WeiBo)
18     run = bf(suite)
19     run.report(filename=u"微博测试报告_" + time.strftime("%Y~%m~%d %H~%M~%S"), description=u"以游客形式浏览微博", report_dir="report", theme="theme_memories")

原文地址:https://www.cnblogs.com/aziji/p/11990739.html

时间: 2024-10-09 21:31:47

解读并加工BeautifulReport 报告模板的相关文章

latex 撰写科技报告模板

1.Latex简介 latex在撰写科技论文.科技报告方面有着强大的优势,在撰写复杂的数学公式和作图方面都很方便,适合有一定代码经验的人使用. 一个框架: \begin{document} \begin{CJK*}{UTF8}{gbsn} ........... \end{CJK*} \end{document} 1.1 部分宏命令 \textbf{}%文本黑体    mathbf{}%数学符号黑体    \limits_{i=1}^{n}%符号正上正下方   A_i^n%符号右下右上方 2.L

接口测试用例和报告模板

接口测试用例和报告模板 当今在测试领域,接口测试已经越来越多的被提及,被重视. 区别于传统意义上的系统级别测试,很多测试人员在接触到接口测试的时候,也许对测试执行还可以比较顺利的上手,但一提到相关的归档,比如测试用例和报告,就有些不知所措了. 今天就用这篇文章来说说接口测试用例和报告. 1. 接口用例模板 提到测试用例,我们知道,其中最重要的两个要素就是: 测试步骤 预期结果 其实对于接口测试也同样如此:接口测试的步骤中,最重要的是将实现向接口发送预设请求,结果则要关注响应信息及后续处理. 所以

做题报告模板

题目链接: Remove All Adjacent Duplicates In String 题目大意: .... 做题报告: (1)该题涉及的算法与数据结构 ... (2)自己的解答思路+代码+分析时间和空间复杂度 (3)大神们的解答思路+代码+分析时间和空间复杂度 时间和空间复杂度: 时间复杂度:O( ) 空间复杂度:O( ) (4)比较自己想的和参考答案的区别 原文地址:https://www.cnblogs.com/Aiahtwo/p/12228711.html

商户季度工作分析报告-模板(转)

一.1季度整体业务发展情况 (一)团队指标完成情况 截止3月底,累计发展有效商户XX户(折户),收单及消费回佣收入1070.69万元,分别完成1季度计划的XX%.XX%:品牌特惠商户累计发展15户,营销策划活动6项,特惠本行卡消费增长额2902.89万元,分别完成1季度计划的XX%.100%.XXX%:公积金营销累计1212户,完成1季度1500户任务的80.8%. 1季度各项业务指标完成情况比去年4季度有不同程度的下降,其中全行商户交易量.全口径收入.特惠本行卡交易量下降幅度分别为:-2.93

python 报告模板生成笔记一

unittest HTMLTestRunner HTMLTestRunner time (unittest.TestCase):     ():         ()     ():         ()     ():         ()            ():         () __name__ == :     suite=unittest.TestSuite()     suite.addTest(Test())     suite.addTest(Test())     n

测试用例和缺陷报告模板分享

链接:https://pan.baidu.com/s/1l2KdjuUlZHsqXJuUz7n7rg 提取码:m2xj 复制这段内容后打开百度网盘手机App,操作更方便哦 原文地址:https://www.cnblogs.com/cainiaoxiansheng/p/10319411.html

BeautifulReport报告问题

newFields = []for i in range(len(self.fields["testResult"])): newFields.append(self.fields["testResult"][i]["log"][:-1]) finalFields = []for num in range(len(newFields)): if num == 0: finalFields.append(newFields[num]) else:

报告自动生成

对于诸多行业客户,在平时工作实践中,会产生大量的财务数据.交易数据,以及基于这些数据的计算过程和结果.如何将此类数据的采集.编辑.加工.汇总.整理.存储.产生分析报告,得到有效信息,工作量极大,人工成本昂贵,并且繁琐,存在风险.如果客户的工作报告生成系统为人工制作,操作风险会比较高,数据需人工采集编辑,未来产品数量和数据爆发式增长,现有制作报告人力会面临制作时效较长.缺失系统管理.无法有效完成报告查询定位等风险,间接影响客户服务体验.基于此,构建一个行业客户工作报告生成配套管理系统,从报告的出生

金融行业工作报告自动生成系统

对于诸多行业客户,在平时工作实践中,会产生大量的财务数据.交易数据,以及基于这些数据的计算过程和结果.如何将此类数据的采集.编辑.加工.汇总.整理.存储.产生分析报告,得到有效信息,工作量极大,人工成本昂贵,并且繁琐,存在风险.如果客户的工作报告生成系统为人工制作,操作风险会比较高,数据需人工采集编辑,未来产品数量和数据爆发式增长,现有制作报告人力会面临制作时效较长.缺失系统管理.无法有效完成报告查询定位等风险,间接影响客户服务体验.基于此,构建一个行业客户工作报告生成配套管理系统,从报告的出生