对于软件测试人员来说,测试的产出很难衡量,换句话来说,测试人员的价值比较难以量化和评估,相信这一点对于软件测试人员说深有体会,因此我们就需要一份漂亮的测试报告来展示自己的产出。
HTMLTestRunner是python标准库unittest单元测试框架的一个扩展,易于生产html报告。
下载地址如下:http://tungwaiyip.info/software/HTMLTestRunner.html
这个拓展非常的简单Windows下直接将文件保存到python的lib目录下即可
修改HTMLTestRunner文件
第94行
import StringIO
修改成:
import io第539行
self.outputBuffer = StingIo.StringIO()
修改成
self.outputBuffer = io.StringIO()第631行
print >> sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime)
修改成
print(sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime))第642行
if not ramp.has_key(cls):
修改成
if not cls in rmap:第766行
uo = o.decode(‘latin-1’)
修改成
uo = e第772行
ue = e.decode(‘latin-1’)
ue = e
全部改好后导入from HTMLTestRunner import HTMLTestRunner就可以了。
下面看实现代码
if __name__ == '__main__':
import time
from HTMLTestRunner import HTMLTestRunner
tesunit = unittest.TestSuite()
n = 0
while n <=1: #执行测试用例,这里博主只写了两条用例,用例命名分别为test_1,test_2
n+=1
tesunit.addTest(Test_login('test_'+ str(n))) #依次执行Test_login类下的test_1和test_2用例
now = time.strftime("%Y-%m-%d %H_%M_%S") #确定当前时间,保证测试报告标题的唯一性和可追溯性
uli = 'D:/自动化报告/' + now + 'qq.html' #将测试结果文件保存在D:/自动化报告/目录下命名为qq.html
fp = open(uli, 'wb') #以二进制的方式打开D:/自动化报告/目录的文件如果没有则创建一个
runner = HTMLTestRunner(stream=fp, title='这是我的自动化测试报告', description='测试用例执行情况:') #stream指定测试报告文件,title指定测试报告的标题,description指定测试报告的副标题
runner.run(tesunit) #执行测试套件中的所有测试用例
fp.close() #关闭测试报告文件
在写断言是博主故意写错一条断言,看测试报告是否能正确的显示出来
可以正确提示错误。