整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

自动化测试之HTML测试报告

载地址HTMLTestRunner.py文件:

http://tungwaiyip.info/software/HTMLTestRunner.html

下载的适合python2,如果python3要修改一些内容

首先吧HTMLTestRunner文件添加到环境变量里,可以直接放到python的Lib目录下

HTMLTestRunner是python标准库unittest单元测试框架的一个扩展,用于生成HTML测试报告


生成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 中运行

作者:西边人