结合python+unittest+HTMLTestRunner自动生成测试报告:html
开发构思:python
一、在测试方法相同时,测试多个不一样参数的测试状况;(unittest自动根据参数条数生成多个的方法)
json
二、可统计测试状况;ide
三、测试状况数据过滤;测试
四、日志记录失败的测试方法;spa
测试报告预览:日志
resultHtml.py文件,自动测试指定目录下的文件code


1 #coding=utf-8 2 from lib.HTMLTestRunner import HTMLTestRunner 3 import time 4 import unittest 5 import os 6 #from dataExcel import dataExcel 7 import time 8 #定义测试用例的目录为当前目录 9 test_dir=os.path.dirname(os.path.realpath(__file__)) 10 test_dir1 = test_dir +'\\resultHtmlFile' 11 discover = unittest.defaultTestLoader.discover(test_dir,pattern = 'testExcelType*.py') 12 13 if __name__=="__main__": 14 15 #按照必定的格式获取当前的时间 16 now = time.strftime("%Y-%m-%d %H-%M-%S") 17 18 #定义报告存放路径 19 filename =test_dir1 + '/' + now + 'test_result.html' 20 21 fp = open(filename,"wb") 22 #以二进制格式打开一个文件只用于写入。若是该文件已存在则将其覆盖。若是该文件不存在,建立新文件。 23 #定义测试报告 24 runner = HTMLTestRunner(stream = fp, 25 title = u"接口测试报告", 26 description = u"测试用例执行状况:") 27 #运行测试 28 runner.run(discover) 29 fp.close() #关闭报告文件
testExcelType.py文件,执行测试方法


1 import unittest 2 import time 3 import requests 4 from data.dataExcelType import dataExcelType 5 import os 6 # 导入自定义的logging配置 7 from logs.log import Logger 8 import time 9 import json 10 from common.login import Login 11 12 class TestDemo(unittest.TestCase): 13 cur_path=os.path.dirname(os.path.realpath(__file__)) 14 xlsxName = r'\inteData.xlsx' 15 16 dataExcelType = dataExcelType(cur_path,cur_path_json,xlsxName,0) 17 18 19 #为批量生成测试用例提供数据 20 @parameterized.expand(dataExcelType) 21 22 def testcase(self,a): 23 u'''测试接口''' 24 25 logs = Logger().get_logger() 26 logs.info("开始执行用例:-------------- %s ,%s" % (a['params'],a['result'])) 27 28 time.sleep(0.5) 29 30 #要测试的操做代码 31 #.... 32 33 if __name__ == "__main__": 34 35 unittest.main(verbosity=2)