对于自动化来说,测试报告是必须的,在敏捷化的团队中,团队中的成员需要自动化这边提供自动化的测试报告,来判断系统的整体质量以及下一步的测试策略。单元测试库生成测试输出到控制台的窗口上,但是这样的结果看起来比较费力,很显然,控制台日志的输出的信息并不是个好的注意,那么好的注意应该是生成html页面的测试报告,这样的报告看起来更加清晰,庆幸的是unittest的单元测试库扩展的HTMLTestRunner.py,可以生成html的自动化报告。
一、HTMLTestRunner.py
首先,下载HTMLTestRuner.py文件。
源地址:http://tungwaiyip.info/software/HTMLTestRunner.html
这是针对Python2.7版本,那么对于Python3.x的使用,需要改动几处。http://www.bubuko.com/infodetail-529431.html。
具体改动如下:
第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer= io.StringIO()
第631行,将print >> sys.stderr, ‘
Time Elapsed: %s‘ %(self.stopTime-self.startTime)修改成print(sys.stderr, ‘
TimeElapsed: %s‘ % (self.stopTime-self.startTime))
第642行,将if not rmap.has_key(cls):修改成if notcls in rmap:
第766行,将uo = o.decode(‘latin-1‘)修改成uo = e
第775行,将ue = e.decode(‘latin-1‘)修改成ue = e
第778行,将output = saxutils.escape(uo+ue),修改成output = saxutils.escape(str(uo)+str(ue)),
将上述几处改动,保存成功后,再将HTMLTestRunner.py放到C:Python34Lib目录中, 运行cmd,输入python,导入import HTMLTestRunner,无任何的错误提示信息,就表示成功,见截图:
HTMLTestRunner.py实现html的测试报告,具体见如下的测试实例代码:
#coding:utf-8
fromselenium import webdriver
fromtime import sleep,time,ctime
import unittest
fromPage import *
import threading
import HTMLTestRunner
class DemoPage(unittest.TestCase,BasePage.Page):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.implicitly_wait(30)
self.driver.maximize_window()
self.driver.get('http://www.baidu.com')
def testTitle(self,value='testData'):
self.assertTrue(self.driver.title in self.getXmlData(value) )
def testUrl(self):
print self.driver.current_url
def tearDown(self):
self.driver.close()
self.driver.quit()
if__name__=='__main__':
suite=unittest.makeSuite(DemoPage)
#定义自动化报告目录
filename='D:\git\PyCharm\SeleniumHq\Test-report\Report.html'
fp=file(filename,'wb')
runner=HTMLTestRunner.HTMLTestRunner(
stream=fp,
title=u'自动化测试报告',
description=u'自动化测试报告'
)
runner.run(suite)
执行成功后,自动化的测试报告在D:\git\PyCharm\SeleniumHq\Test-report目录下的Report.html,打开Report.html的文件,就可以看到如下的自动化测试报告的截图了: