生成HTMLTestRunner测试报告的操作步骤——Python+selenium自动化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成HTMLTestRunner测试报告的操作步骤——Python+selenium自动化相关的知识,希望对你有一定的参考价值。

htmlTestRunner是Python标准库的unittest模块的一个扩展,具体操作如下

1.安装

环境:Window8

步骤:1)http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py文件
2)因为我使用的是python 3,所以在HTMLTestRunner.py文件中要做一下修改,修改内容如下:

修改一:

在python shell里输入>>>import HTMLTestRunner >>> dir(HTMLTestRunner) 发现不认识StringIO (No module named StringIO),确实3里面没有这个了,第94行引入的名称要改,改成import io,539行要改成self.outputBuffer = io.BytesIO()

 

修改二:运行程序的时候有报错,AttributeError: ‘dict‘ object has no attribute ‘has_key‘ 发现has_key的又被K掉了,所有到642行去做修改,if not rmap.has_key(cls): 需要换成if not

cls in rmap: (修改的时候换行、空格等不要改掉原有的格式)

 

修改三:

运行,继续有报错:‘str‘ object has no attribute ‘decode‘ 唉,好像是3里面对字符的操作,decode已经拿掉了。定位一下,报在了772行,ue = e.decode(‘latin-1‘),那么不需要decode

操作了吧,直接改成ue = e ,另外766还有类似的uo = o.decode(‘latin-1‘),可不动先留着;

 

修改四:

继续运行,发现还是在纠结数据类型的错:output = saxutils.escape(uo+ue), TypeError: can‘t concat bytes to str bytes和str不能直接连起来,那么778行的内容escape(uo+ue) 有一个处理的“笨办法”:都改成str,可修改该处内容为escape(str(uo)+ue)

 

修改五:(此处是最后一处改动了)

程序已然运行大半,但是最后还是有error:

print >>sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime)

TypeError: unsupported operand type(s) for >>: ‘builtin_function_or_method‘ and ‘RPCProxy‘

相信这条很多刚接触3.x的人都明白,2和3的print是很不同的,那么在3中,print 后面

是不会跟>>这样的,所以到631行,把print的语句修改掉,原来是print >>sys.stderr, ‘\nTime

Elapsed: %s‘ % (self.stopTime-self.startTime),可改成 print (sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime)) 每次修改后都要对HTMLTestRunner.py 保存一下。另外在3当中,打开本地文件需用fp =open(filename,‘wb‘),不要再去用file了;关闭该文件可用fp.close()

 

2.验证是否添加成功

在python交互模式下导入HTMLTestRunner.py包

>>import HTMLTestRunner

>>

出现以上信息择时添加成功

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 使用的例子如下:

#coding:utf-8

from test_case import search
from test_case import setting
import HTMLTestRunner
import unittest
import sys

testunit = unittest.TestSuite()
testunit.addTest(unittest.makeSuite(search.Baidu_Search))
testunit.addTest(unittest.makeSuite(setting.SetBai))

filename = ‘E:\\study_code\\Testing\\src\\result.html‘
fp = open(filename,‘wb+‘)
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=‘百度搜索测试报告‘,description=‘用例执行情况‘)

runner.run(testunit)

以上是关于生成HTMLTestRunner测试报告的操作步骤——Python+selenium自动化的主要内容,如果未能解决你的问题,请参考以下文章

Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )

python搭配selenium,htmltestrunner实现自动化测试 —— (测试思路和基础步骤)

关于python-生成HTMLTestRunner测试报告

python selenium2示例 - 生成 HTMLTestRunner 测试报告

Python自动化测试框架——生成测试报告

python_单元测试unittest测试报告HTMLTestRunner