python+unittest+HTMLTestRunner生成测试报告

结合python+unittest+HTMLTestRunner自动生成测试报告:

开发构思:

  1、在测试方法相同时,测试多个不同参数的测试情况;(unittest自动根据参数条数生成多个的方法)

  2、可统计测试情况;

  3、测试情况数据过滤;

  4、日志记录失败的测试方法;

测试报告预览

resultHtml.py文件,自动测试指定目录下的文件

 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() #关闭报告文件
resultHtml.py
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)
testExcelType.py
@成为那个自己
原文地址:https://www.cnblogs.com/xiaochou1024/p/9328892.html