1. 简介

  截止到上一篇文章为止,框架基本完全搭建完成。那么今天我们要做什么呢????聪明如你的小伙伴或者是童鞋一定已经猜到了,都测试完了,当然是要生成一份高端大气上档次的测试报告了。没错的,今天宏哥就带领你们将这部分内容也集成到这个框架中。本文来介绍如何生成自动化测试报告,前面文章尾部提到了利用HTMLTestRunner.py来生成自动化测试报告。关于HTMLTestRunner不过多介绍,只需要知道是一个能生成一个HTML格式的网页报告就可以,其他的如果你特别感兴趣可以自己去搜索查询资料。我们需要在宏哥前边介绍的自动化框架里面继承一个报告输出,直接来看看效果。

2. 测试报告效果

2.1 测试报告文件

  我们从下图中,可以清楚地看到在test_report文件夹下生成的测试报告

2.2 浏览器预览效果

  因为生成的是.html文件,所以这里用浏览器打开我们看一下效果如下图:

2.3 实现

  这里我们报告输出代码写到了,负责执行测试套件TestRunner.py这个文件。相关代码如下:

TestRunner.py

2.3.1 代码实现:

2.3.2 参考代码:
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2019-12-25
@author: 北京-宏哥 QQ交流群:705269076
Project: 《一头扎进》系列之Python+Selenium自动化测试框架实战篇7 - 年底了还没升职加薪,年终奖全靠它了!!!
'''
# 3.导入模块
from automation_framework_demo.testsuits import HTMLTestReportCN
import os
import unittest
import time
from automation_framework_demo.framework.SendEmail import SendMail # 设置报告文件保存路径
report_path = os.path.dirname(os.path.abspath('.')) + '/test_report/' print('report_path'+ report_path)
# 获取系统当前时间
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) # 设置报告名称格式
HtmlFile = report_path + now + "HTMLtemplate.html"
#fp = file(HtmlFile, "wb")
fp = open(HtmlFile, "wb") #用例路径
case_path = os.path.join(os.getcwd(), '')
print('case_path',case_path) # 构建suite
# suite = unittest.TestLoader().discover(case_path, "test_baidu_search.py", top_level_dir=None)
suite = unittest.TestLoader().discover(case_path, "baidu_search1.py", top_level_dir=None) if __name__ == '__main__':
#初始化一个HTMLTestRunner实例对象,用来生成报告
runner = HTMLTestReportCN.HTMLTestRunner(stream=fp, title=u"Python+Selenium自动化测试框架实战篇7项目演示测试报告", description=u"用例测试情况")
#开始执行测试套件
runner.run(suite)
# runner = unittest.TextTestRunner()
# runner.run(suite)
fp.close()
2.3.3 运行结果:

  运行代码后,控制台打印如下图的结果

2.3.4 测试报告预览

  测试报告用浏览器打开截图,在你项目文件路径下,找到这个HTML的报告,用本地浏览器打开。

  如何生成自动化测试报告就介绍到这里。

3. 测试报告模板插件

  宏哥这里为了方便,直接将测试报告的模板插件,直接放在了testsuits的文件下,如图:

  如果有洁癖的小伙伴或者童鞋们,可以自己建一个文件夹专门来存储这个模板插件也可以的,但是不要忘记了最重要的一条就是将其导入,否则可能会报找不到的错误哦!

4. 导入测试报告模板插件

  如何导入?其实很简单的,就像python导入其他模块一样。例如宏哥这里的导入方法如下:

  宏哥总结如下:

from  文件夹路径  import 插件名字.py

5. 执行所有测试用例

  除了上一篇那种找到文件夹,执行所有测试用例,我们还有别的方法执行所有测试用例吗?当然有,但是对测试用例的名字的命名有要求,其实也不是硬性要求,只不过是为了后边我们的正则表达式好写,这里命名就规范一些。

5.1 命名规则:

  所有测试用例的名字都以test开头,例如:test_login.py。

5.2 正则表达式:

  正则表达式:test*.py

5.3 代码实现:

5.4 参考代码:

# 构建suite
# suite = unittest.TestLoader().discover(case_path, "test_baidu_search.py", top_level_dir=None)
suite = unittest.TestLoader().discover(case_path, "test*.py", top_level_dir=None)

6. 小结

  好了,今天的分享就到这里吧!!!谢谢各位的耐心阅读。有问题加群交流讨论!!!

哎呀!!!忘记了,最后祝大家圣诞节快乐。。Merry Christmas!!!

您的肯定就是我进步的动力。如果你感觉还不错,就请鼓励一下吧!记得随手点波  推荐  不要忘记哦!!!

别忘了点 推荐 留下您来过的痕迹

《一头扎进》系列之Python+Selenium框架实战篇7 - 年底升职加薪,年终奖全靠它!Merry Christmas的更多相关文章

  1. 《一头扎进》系列之Python+Selenium框架设计篇3- 价值好几K的框架,狼来了,狼来了....,狼没来,框架真的来了

    1. 简介 前边宏哥一边一边的喊框架,就如同一边一边的喊狼来了!狼来了!.....这回是狼没有来,框架真的来了.从本文开始宏哥将会一步一步介绍,如何从无到有地创建自己的第一个自动化测试框架.这一篇,我 ...

  2. 《一头扎进》系列之Python+Selenium框架设计篇4- 价值好几K的框架,呵!这个框架有点意思啊

    1.简介 前面文章,我们实现了框架的一部分功能,包括日志类和浏览器引擎类的封装,今天我们继续封装一个基类和介绍如何实现POM.关于基类,是这样定义的:把一些常见的页面操作的selenium封装到bas ...

  3. 《一头扎进》系列之Python+Selenium框架设计篇5 - 价值好几K的框架,哎呦!这个框架还真有点料啊!!!

    1. 简介 其实,到前面这一篇文章,简单的Python+Selenium自动化测试框架就已经算实现了.接下来的主要是介绍,unittest管理脚本,如何如何加载执行脚本,再就是采用第三方插件,实现输出 ...

  4. 《一头扎进》系列之Python+Selenium框架设计篇1-什么是自动化测试框架-价值好几K的框架,不看别后悔,过时不候

    1. 什么是自动化测试框架 在了解什么是自动化测试框架之前,先了解一下什么叫框架?框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法:另一种定义认为,框架是可被应用开发者定制的 ...

  5. 《一头扎进》系列之Python+Selenium框架设计篇2- 价值好几K的框架,不看白不看,看了还想看

    1. 简介 上一篇介绍了自动化框架的架构,今天宏哥就带领小伙伴或者童鞋们开始开工往这个框架里开始添砖加瓦.主要是介绍一个框架unittest单元测试框架和一种设计思想POM. 2. unittest单 ...

  6. Python+Selenium框架设计篇之-简单介绍unittest单元测试框架

    前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest.       unit ...

  7. Python+Selenium框架设计篇之-什么是自动化测试框架

    1.什么是自动化测试框架 简单来说,自动化测试框架就是由一些标准,协议,规则组成,提供脚本运行的环境.自动化测试框架能够提供很多便利给用户高效完成一些事情,例如,结构清晰开发脚本,多种方式.平台执行脚 ...

  8. Python+Selenium框架设计篇之-什么是POM

    前面我们介绍了Python中的单元测试框架unittest,以后我们所有的测试类文件,都采用unittest来辅助我们进行debug和脚本开发.搞定了debug机制和确定了unittest来进行创建和 ...

  9. 《一头扎进》系列之Python+Selenium自动化测试框架实战篇6 - 价值好几K的框架,呦!这个框架还真牛叉哦!!!

    1. 简介 本文开始介绍如何通过unittest来管理和执行测试用例,这一篇主要是介绍unittest下addTest()方法来加载测试用例到测试套件中去.用addTest()方法来加载我们测试用例到 ...

随机推荐

  1. ANSI转义代码(ANSI escape code)

    ANSI escape code - Wikipedia linux 输出绿色的✓TRUE,红色的✗FALSE : echo -e "\x1B[1;32m✓TRUE \x1B[0mXXX&q ...

  2. vue搭建项目之设置axios

    首先要下载axios: npm install axios -S 要注意的是,axios不支持Vue.use();这种方式,可以改写原型链. 第二步就是新建axios存放位置: 在项目中src中单独建 ...

  3. Linux系统CPU占用率较高问题排查思路

    作为 Linux 运维工程师,在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行,带来企业损失. 很多运维的同学遇到这 ...

  4. drf基础

    1.什么是编程? 数据结构和算法的结合 2.什么是REST? 同一个功能会产生五花八门的url(把查看单条记录和查看多条记录都看成是一个功能),而且响应回去的数据也没有同一的格式规范,这就造成了前后端 ...

  5. 插件化框架解读之Class文件与Dex文件的结构(一)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 Class文件 Class文件是Java虚拟机定义并被其所识别的 ...

  6. [Fw]初探linux中断系统(2)

    初探linux中断系统(2) 中断系统初始化的过程 用来初始化中断系统的函数位于arch/x86/kernel/irqinit.c,定义如下 void __init init_IRQ(void){ i ...

  7. ASP.NET Core 2.1 JWT Token 使用 (二) - 简书

    原文:ASP.NET Core 2.1 JWT Token 使用 (二) - 简书 接上文,https://www.jianshu.com/p/c5f9ea3b4b65 ASP.NET Core 2. ...

  8. 下载Spring各个版本的jar包

    网址:https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-local/org/springframew ...

  9. docker概述与安装及运行容器

    传统虚拟化 传统虚拟化步骤 1.安装虚拟化软件以及虚拟化的管理软件 2.创建虚拟机 3.给虚拟机安装os 4.在虚拟机内部不是应用(http.db之类的应用) 传统虚拟化的特点 1.VM与VM之间是完 ...

  10. HDFS学习笔记一

    一,HDFS是什么,HDFS有什么用,HDFS怎么用 HDFS:Hadoop Distribute File System 分布式文件系统 HDFS可以保证文件存储的可靠性, 二.HDFS的设计原则 ...