discover查找用例方法,htmltestrunner模块生成报告

加载用例的方法:

方法一:#其他时候一般是使用的discover方法来查找当前工程下符合case数据
discover = unittest.defaultTestLoader.discover(start_dir=casepath,
                                               pattern='test*.py',
                                               top_level_dir=None)
print(discover)
方法二:
#但是在这里,要想通过结合ddt来获取excel当中的用例数据,并加载用例执行就只能使用unittest当中的Testloader()方法

简单介绍:结合unittest当中的Testloader()

 

 

 

'''
unittest中的TestLoader使用说明
第一步:unittest增加TestSuit()
suite=unittest.TestSuite()
第二步:unittest增加Testloader几种运行方式
unittest.TestLoader().loadTestsFromTestCase(类名)
unittest.TestLoader().loadTestsFromMoudule(模块名)
unittest.TestLoader().loadTestsFromName(方法名)
unittest.TestLoader().loadTestsFromNames(方法名,复数形式)
第三步:在suite中增加运行方法
suite.addTest(suite1)
第四步:运行
unittest.TextTestRunner().run(suite1)
'''

 

 

#以下为简单的一个函数使用,还可以将下面的分开写成函数方法并整合一下:------这里不写具体内容,可以看看前面的文章有具体方法介绍

基本思路 比如这样:1加载excel用例到测试套件、2时间函数、3HTMLtestrunner来执行用例并生成报告、4发送邮件

#!/usr/bin/python3
# -*- coding:utf-8 -*-
#Author:qika


import unittest
import time
import os
from Base import HTMLTestRunner
from testcase.test_ddt_loadcase import DataTest





def run_case(reportName='report'):
    #将excel里面的用例数据添加进入到unittest测试套件内
    suite = unittest.TestSuite()
    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(DataTest))  #将test_ddt_loadcase import DataTest   这个类直接添加进去使用
    nowtime = time.strftime('%Y-%m-%d %H_%M_%S',time.localtime(time.time()))  #声明一个时间--可以写一个时间函数方法(前面的文章有介绍)

    basedir = os.path.dirname(os.path.dirname(__file__))  #获取到当前文件所在目录,的父级目录
    #print(basedir)

    reportPath = os.path.join(basedir,reportName)    #报告存放的文件夹目录
    report_abspath = os.path.join(reportPath,nowtime + '_result.html')  #实际的执行结果后,报告存放的路径

    fp = open(report_abspath,"wb")  #打开绝对路径下的报告
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                            title='测试报告标题:这是本次自动化测试报告',
                                            description="这是本次用例执行情况,如下:",
                                            retry=1)  #retry表示失败重跑

    runner.run(suite)#运行测试套件(从excel读取的数据添加进去的)


if __name__ == '__main__':
    run_case(suite)

 

posted on 2020-10-18 18:04  QiKa  阅读(216)  评论(0编辑  收藏  举报