python+unittest框架第六天unittest之优化测试报告
今天的内容主要是,用第三方的HTMLRUNner 第三方的报告来优化之前第五天批量执行案例的测试报告。案例的部分看第五天的批量执行笔记~
HTMLRUNner他可以生成更美观的测试报告,基于前辈造的车子,我们直接改造使用。先看下运行代码部分:
案例代码在批量执行第五天去看哦~~
1 #!/usr/bin/env python 2 import unittest #导入unittest 3 import os #导入前面学习的os库,方便获取文件路径 4 import time #导入time模块,方便我们获取当前时间 5 import HTMLTestRunner #HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML的 测试报告。 6 7 def allTests(): 8 suite=unittest.TestLoader().discover( #实例化测试套件,discover()方法可以批量执行多个模块中的测试案例 9 start_dir=os.path.dirname(__file__), #start_dir=该参数是discover()方法中的,后面的参数是需要批量执行的用例模块路径 10 pattern='test_*.py', #pattern=该参数是discover()方法中的,后面的参数是所有需要执行的用例前面是test_,后半部分用*号代替的.py文件 11 top_level_dir=None) #top_level_dir=该参数是discover()方法中的,固定格式:top_level_dir=None 12 return suite #记住返回测试套件 13 def getnowtime(): #该方法获取当前最新时间 14 return time.strftime('%Y-%m-%d %H_%M_%S',time.localtime(time.time())) #'%Y-%m-%d %H_%M_%S' 代表:年月日 时_分_秒 ,不能用冒号 %H:%M:%S 切记 15 16 def run(): #运行 17 fp = os.path.join(os.getcwd(), 'report',getnowtime()+'testReport.html') # os.getcwd()获取当前的路径,os.path.join()拼接路径,用当前路径和现在的repot目录做拼接,生成时间+testReport.html测试报告文件 18 HTMLTestRunner.HTMLTestRunner( 19 stream=open(fp,'wb'), #在fp文件中用:wb参数 w代表写入,b:是用二进制写入测试报告的内容 20 title='自动化测试报告', #测试报告的标题 21 description='自动化测试报告详情').run(allTests()) #测试报告的详情 22 23 if __name__ == '__main__': 24 run()
首先如果你是python3,你可以直接用我改过的TMLTestRunner.py文件将他直接放入在你的Python3 安装包目录中的Lib文件夹中。比如:
这是我的目录:C:\Users\92938\tools\Python36\Lib 该文件夹中。如图:
大家可以在网上找一下这个文件,如果实在在不到留言邮箱我发送给你~~~
放入该文件后,你就可以导入 import HTMLTestRunner 模块 然后记得创建测试报告包,以及指定测试报告输出到那个目录下。还有时间哦~方便看每次执行后,那个才是最新执行的结果~~
接下来就是看我刚才顶部的代码,理论上你应该能看的懂我的注释,如果你还是不懂,就留言吧~~~
我们看下执行后生成的测试报告:
ennn…总结:
1、python2 和 python3 使用的HTMLRunner.py文件是不一样的,需要修改~~
2、测试模块.py文件,一定要写规范,不要使用中文或中横线(—-)我使用后,发现这个模块文件中的案例不会被执行~~~
3、记得获取当前最新时间,方便看最新的测试报告~~ 另外时间的地方不能用冒号,切记
4、测试完毕后,点击html文件,在浏览器中打开,就可以看了
来自新手,在路上~~~不会的朋友留言哦~~~