载地址HTMLTestRunner.py文件:
http://tungwaiyip.info/software/HTMLTestRunner.html
下载的适合python2,如果python3要修改一些内容
首先吧HTMLTestRunner文件添加到环境变量里,可以直接放到python的Lib目录下
HTMLTestRunner是python标准库unittest单元测试框架的一个扩展,用于生成HTML测试报告
#coding:utf-8
import unittest, HTMLTestRunner
class Testcase(unittest.TestCase): # 测试用例类
# 具体的测试用例,一定要以test开头
def test1(self):
self.assertEqual(1, 1)
def test2(self):
self.assertEqual(2, 2)
if __name__ == "__main__":
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(Testcase)) # 执行该测试类所有用例
# 定义报告的存放路径,以二进制写的形式打开文件
f = open('test.html', 'wb')
# 定义测试报告,stream:报告存放路径,title:报告标题,description:描述
runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=u'测试用例标题', description=u'描述')
runner.run(suite) # 运行测试用例
f.close() # 关闭文件
返回结果(测试报告详情):
--stream :存放报告写入文件的存入区域
--title :测试报告的主题
--description :测试报告的描述
为了生成带有中文描述的测试用例类和测试用例
在用例类和用例方法下,通过’’’ ‘’’或””” “””来添加备注
#coding:utf-8
import unittest, HTMLTestRunner
class Testcase(unittest.TestCase): # 测试用例类
u'''类名后加备注'''
def test1(self):
u'''用例后面加备注1'''
self.assertEqual(1, 1)
def test2(self):
u'''用例后面加备注2'''
self.assertEqual(2, 2)
if __name__ == "__main__":
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(Testcase))
# 定义报告的存放路径,以二进制写的形式打开文件
f = open('test.html', 'wb')
# 定义测试报告,stream:报告存放路径,title:报告标题,description:描述
runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=u'测试用例标题', description=u'描述')
runner.run(suite) # 运行测试用例
f.close() # 关闭文件
返回结果:
#coding:utf-8
import unittest, HTMLTestRunner, time
from unittest.loader import makeSuite
class Testcase(unittest.TestCase): # 测试用例类
# 具体的测试用例,一定要以test开头
def test1(self):
self.assertEqual(1, 1)
def test2(self):
self.assertEqual(2, 2)
if __name__ == "__main__":
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(makeSuite(Testcase)) # 执行该测试类所有用例
# 定义报告的存放路径,以二进制写的形式打开文件
now = time.strftime("%y-%m-%d %H_%M_%S")
f = open('./' + now + 'test.html', 'wb')
# 定义测试报告,stream:报告存放路径,title:报告标题,description:描述
runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=u'测试用例标题', description=u'描述')
runner.run(suite) # 运行测试用例
f.close() # 关闭文件
返回结果:
将红框里的内容注释掉改成uo = o.decode('utf-8')
何将自动化测试脚本执行的结果通过html根据直观的展示呢?
可通过引入HTMLTestRunner库,但需要先网上下载该库文件并存放到python文件目录中
Python 做selenium自动化测试,HTMLTestRunner 生成测试报告时,遇到很奇怪的问题,明明运行的结果,没有任何报错就是无法生成测试报告,如果你也这样看,这篇文章就对了,总结下。
代码示例
un_all_case.py
生成报告主要代码
解决方法
1: filename = ‘E:\testresult.html’,如果是在windows环境,文件名要使用以下几种格式。
①filename = 'E:\\testresult.html’ ②filename = r'E:\testresult.html' ③filename = 'E:/testresult.html'
2:若不是使用with做文件的上下文管理,记得要fp.close() 关闭打开的文件,才可以保存。
fp = open(filename, 'wb') fp.close()
3:第三种就奇葩了,看截图(截图为同一代码)(Pycharm IDE)
图一
图二
如果是以图一方式运行,就不会有报告生成,至于原因,可能是因为if name == ‘main‘。的原因
Pycharm 自带测试框架,在右上角,
点击Edit Configurations→Python tests→选中你要删除的项目删除,这样就不会自动执行unittest。
4:又遇到一种情况,按照以上3个方法都不行,使用快捷键:Ctrl+shift+F10 还是无法生成report,最后在pycharm的右上角,发现了一个按钮(shift + F9)如图
这样就可以运行了。(前提是必须在Edit Configurations 中配置好,你需要运行的.py Script Path 的文件路径)
如下图配置。
5:你下载的HTMLTestRunner源码,如果是Python2.7编写的,那么你机器上安装的是3.6会报错,这个解决办法只能是修改HTMLTestRunner,至于怎么修改可以在网上搜索,也可以在公众号回复这个HTML“TestRunner”,给你自动下发已经修改好的源码,你直接导入即可。
6:如果还是不行的话,换个IDE(例如Atom Eclipse ) or 直接在cmd 中运行
作者:西边人
*请认真填写需求信息,我们会在24小时内与您取得联系。