总结下使用HTMLTestRunner过程中遇到的一些问题,方便之后回溯。库的二次修改,报告展示出不同的样式还未进行。仅库的版本使用方面简单记录下。发现2个版本在生成的html文件名方面也有点小区别,HtmlTestRunner如需自定义时间戳格式等加到文件名中需手动去修改源码库,而HTMLTestRunner可以直接在外部直接定义格式,版本如下:
1、版本1:HTMLTestRunner
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html,选择 HTMLTestRunner.py打开右键保存到site-packages目录下。文件名为HTMLTestRunner.py。python3.7以上需要修改下载的包文件内容,修改点如下:
第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
第766行,将uo = o.decode('latin-1')修改成uo = e
第775行,将ue = e.decode('latin-1')修改成ue = e
第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
行数可能不太一样,搜索下内容替换就行。
调用方式:
fp = open(report_abspath, "wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=title)
runner.run(all_case())
fp.close()
2、版本2:HtmlTestRunner
选择pip install安装:pip intall html-testRunner
使用方式:
- 结合unittest使用,用例使用测试套件的方式传入,更灵活
import HtmlTestRunner
import unittest
tc1 = unittest.TestLoader().loadTestsFromTestCase(AddRole)
tc2 = unittest.TestLoader().loadTestsFromTestCase(SelectEmp)
tc3 = unittest.TestLoader().loadTestsFromTestCase(DelEmp)
if __name__ == '__main__':
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='..\\reports\\'))
myTestSuits = unittest.TestSuite([tc1, tc2, tc3])
unittest.TextTestRunner(verbosity=3).run(myTestSuits)
- 结合discover使用。用例使用正则匹配再批量传入
title = u"xxxxxx"
def all_case():
"""导入所有的用例"""
case_path = os.getcwd()
discover = unittest.defaultTestLoader.discover(case_path,
pattern="Test*.py")
if __name__ == "__main__":
runner = HtmlTestRunner.HTMLTestRunner(report_title=title,output='.\\reports\\')
runner.run(all_case())
问题1:title参数若赋值中文,报告显示中文乱码。
解决:修改result.py文件,open()中添加encoding='utf-8'
问题2:报告view按钮不可点击。
原因:jquery未加载成功
报告默认加载谷歌jquery,替换为其他源的(百度等),相关位置替换html代码:
https://swisnl.github.io/jQuery-contextMenu/demo.html
https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js
...
3、报告样式
HTMLTestRunner
HtmlTestRunner
4、库的二次修改,自定义报告样式
待更新...
二次修改类似报告样式:
image.png
综合来看感觉还是allure报告更加好看。集合的功能也越多。
网友评论