前提:
先下载HTMLTestRunner.py
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
参考:http://www.cnblogs.com/testyao/p/5658200.html
参考:http://www.cnblogs.com/miniren/p/5301081.html#commentform
参考:https://www.cnblogs.com/findyou/p/6925733.html
里面提供写好的适合python3使用的:http://pan.baidu.com/s/1dEZQ0pz
把这个文件放在你安装python的lib目录下(我的在C:Program FilesPython36Lib)
一:测试套件执行少量用例,仅生成测试报告
#############run01.py#############
import unittest import HTMLTestRunner import os #从文件test_case/company/test_getLog加载GetLog类 from test_case.company.test_getLog import GetLog #使用测试套件,添加GetLog类里面的test_getLogN方法 suite = unittest.TestSuite() #初始化一个测试套件Suite实例 suite.addTest(GetLog('test_getLogN')) #GetLog是类名,test_getLogN是测试函数 #输出到特定目录下 # 父目录:os.path.dirname(所在目录:os.path.dirname(绝对路径:os.path.realpath(__file__))) cur_path = os.path.dirname(os.path.realpath(__file__)) #当前文件所在目录 report_path = os.path.join(cur_path, 'report') #拼接成一个新目录 report_abspath = os.path.join(report_path, "result.html") #以字节的方式写入目录下的report.html文件里 st = open(report_abspath, 'wb') HTMLTestRunner.HTMLTestRunner(stream=st, title= '公司端接口自动化测试报告').run(suite)
二、执行多条用例,仅生成测试报告
#############run02.py#############
#coding=utf-8 import unittest import os import HTMLTestRunner #仅生成测试报告不发送邮件 # 父目录:os.path.dirname(所在目录:os.path.dirname(绝对路径:os.path.realpath(__file__))) cur_path = os.path.dirname(os.path.realpath(__file__)) #当前文件存在的路径 case_path = os.path.join(cur_path, 'test_case') #测试case目录 report_path = os.path.join(cur_path, 'report') #测试报告存放目录 def all_case(): '''第一步:加载所有的测试用例''' # 批量加载iscover方法里面有三个参数:
#-case_dir:这个是待执行用例的目录。
#-pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开头的所有脚本。
#-top_level_dir:这个是顶层目录的名称,一般默认等于None就行了。 # discover加载到的用例是一个list集合,需要重新写入到一个list对象testcase里,这样就可以用unittest里面的TextTestRunner这里类的run方法去执行。 discover = unittest.defaultTestLoader.discover(case_path, pattern="test_ljj*.py", top_level_dir=None) # print(discover) return discover def run_case(all_case): '''第二步:执行所有的用例, 并把结果写入HTML测试报告''' # 测试报告文件路径 report_abspath = os.path.join(report_path, "result.html") fp = open(report_abspath, "wb") # 批量执行测试用例三个参数: --stream:测试报告写入文件的存储区域 --title:测试报告的主题 --description:测试报告的描述 runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'日本公司端自动化测试报告,测试结果如下:', description=u'用例执行情况:') # 调用add_case函数返回值 runner.run(all_case) fp.close() if __name__ == "__main__": all_case = all_case() # 1加载用例 run_case(all_case) # 2执行用例