• 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
    @成为那个自己
  • 相关阅读:
    前天晚上终于可以骑自行车了
    第一篇cnblog!
    使用web服务查询数据库的例子(上)
    使用网络提供的web服务开发航班查询程序
    使用web服务查询数据库的例子(下)
    .NET技术与企业级解决方案研究应用
    用正则表达式解析url
    基于原型的类继承
    Pub/Sub模式
    函数调用apply
  • 原文地址:https://www.cnblogs.com/xiaochou1024/p/9328892.html
Copyright © 2020-2023  润新知