1.下载HTMLTestRunner.py
HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展。它生成易于使用的 HTML 测试报告。HTMLTestRunner 是在 BSD 许可证下发布。
(1)下载 地址:http://tungwaiyip.info/software/HTMLTestRunner.html -->
(2)点击HTMLTestRunner.py进入目标文件后,右键另存于即可。
(3)python3中用HTMLTestRunner.py报ImportError: No module named ‘StringIO‘的解决方法:
第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
第772行,将ue = e.decode(‘latin-1‘)修改成ue = e
第631行,将print >> sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime))
(4)修改后下载链接: https://pan.baidu.com/s/13vLRRq9IB2B2y-OwTWrepg 提取码: 89pd
Windows :将下载的文件放入Python34的安装目录...Python34Lib 目录下
2.导入 htmltestrunner 模块包
1 from HTMLTestRunner import HTMLTestRunner 2 import unittest 3 from time import strftime 或者import time,datetime 4 import os 5 from email.mime.text import MIMEText 6 7 from email.mime.multipart import MIMEMultipart # 邮件格式 8 9 from email.mime.image import MIMEImage # 发送带图片邮件
3.定义测试用例路径
test_dir = './testcase/'
或者
list_1 = 'test_case\testcase'
4.查找元素(testcase)
discover = unittest.defaultTestLoader.discover(test_dir,'*case.py')
5.定义测试报告文件名以及取前面时间加入到测试报告文件名中
# 定义报告存放路径,支持相对路径
file_name = './report/' + strftime('%Y_%m_%d_%H_%M_%S') + '.html'
6.创建文件
fp = open(file_name,'wb')
HTMLTestRunner(stream=fp,description='描述',title='标题').run(discover)
7.关闭文件
fp.close()
附件:
# -*- coding: utf-8 -*- import unittest from HTMLTestRunner import HTMLTestRunner import time,os,datetime import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage # 取test_case文件夹下所有用例文件 def creatsuitel(lists): testunit = unittest.TestSuite() # discover 方法定义 discover = unittest.defaultTestLoader.discover(lists, pattern='start_*.py', top_level_dir=None) #discover 方法筛选出来的用例,循环添加到测试套件中 for test_suite in discover: for test_case in test_suite: testunit.addTests(test_case) print(testunit) return testunit list_1 = 'test_case\test_case_1' alltestnames = creatsuitel(list_1) #取前面时间加入到测试报告文件名中 now = time.strftime("%Y-%m-%M-%H_%M_%S", time.localtime(time.time())) filename = "report\"+now+'result.html' #定义个报告存放路径,支持相对路径。 fp = open(filename, 'wb') runner = HTMLTestRunner(stream=fp, title='Report_title', description='Report_description') if __name__ == "__main__": # 执行测试用例集并生成报告 runner = unittest.TextTestRunner()