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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.将 HTMLTestRunner.py 放置在 C:\Python36\Lib 下 2.涉及到创建目录和时间,需要在脚本开头 import os import time 3.执行脚本中删除语句 unittest.main() ,一般在脚本最后,然后添加如下语句: #导入HTMLTestRunner库,这句也可以放在脚本开头 from HTMLTestRunner import HTMLTestRunner #定义脚本标题,加u为了防止中文乱码 report_title = u'登陆模块测试报告' #定义脚本内容,加u为了防止中文乱码 desc = u'手机JPG登陆模块测试报告详情:' #定义date为日期,time为时间 date=time.strftime("%Y%m%d") time=time.strftime("%Y%m%d%H%M%S") #定义path为文件路径,目录级别,可根据实际情况自定义修改 path= 'D:/Python_test/'+ date +"/login/"+time+"/" #定义报告文件路径和名字,路径为前面定义的path,名字为report(可自定义),格式为.html report_path = path+"report.html" #判断是否定义的路径目录存在,不能存在则创建 if not os.path.exists(path): os.makedirs(path) else: pass #定义一个测试容器 testsuite = unittest.TestSuite() #将测试用例添加到容器 testsuite.addTest(测试类名("测试方法名1")) testsuite.addTest(测试类名("测试方法名2")) #将运行结果保存到report,名字为定义的路径和文件名,运行脚本 with open(report_path, 'wb') as report: runner = HTMLTestRunner(stream=report, title=report_title, description=desc) runner.run(testsuite) #关闭report,脚本结束 report.close()

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值