python+selenium自动化测试24

🔥《一头扎进》系列之Python+Selenium框架实战篇7-年底升职加薪,年终奖全靠它!

1.简介

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

2.测试报告效果

2.1测试报告文件

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

1232840-20191225101738291-455174797.png

2.2浏览器预览效果

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

1232840-20191225104053939-876176632.png

2.3实现

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

TestRunner.py

2.3.1代码实现

1232840-20191225104707272-1698353446.png

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

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

#2.注释:包括记录创建时间,创建人,项目名称。
'''
Createdon2019-12-25
@author:北京-宏哥QQ交流群:705269076
Project:《一头扎进》系列之Python+Selenium自动化测试框架实战篇7-年底了还没升职加薪,年终奖全靠它了!!!
'''
#3.导入模块
fromautomation_framework_demo.testsuitsimportHTMLTestReportCN
importos
importunittest
importtime
fromautomation_framework_demo.framework.SendEmailimportSendMail

#设置报告文件保存路径
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运行结果

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

1232840-20191225110559083-366348877.png

2.3.4测试报告预览

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

1232840-20191225110745632-240361636.png

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

3.测试报告模板插件

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

1232840-20191225112002675-1812521548.png

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

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

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

1232840-20191225112251075-1997478372.png

  宏哥总结如下:

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

5.执行所有测试用例

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

5.1命名规则

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

5.2正则表达式

  正则表达式:test*.py

5.3代码实现

1232840-20191225114324614-417827525.png

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.小结

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


扫码关注公众号,更多干货秒得到

  目录