学习笔记-Python unittest(单元测试)+ddt(数

2018-12-05  本文已影响0人  sofiiii

1.概念

1.1 unittest (单元测试)

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。**

1.2 ddt(数据驱动)

DDT是 “Data-Driven Tests”的缩写,DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(可以从json或者yaml中获取测试数据)

1.3 unittest常见的几个概念:

1.4 实例

import unittest,warnings
from ddt import ddt,data
from public.driven.ddtTool import ddtTool
from public.logTool import logTool

@ddt
class test_AD(unittest.TestCase):
    dd = ddtTool()
    datadict = dd.read_excel('AD')

    @classmethod
    def setUpClass(cls):

        log = logTool()
        log.info('{}[AD_START]{}'.format('>' * 30, '<' * 30))
        # 取消警告
        warnings.simplefilter("ignore", ResourceWarning)

    @data(*datadict)
    def test_AD(self, data):
        '''获取数据类接口'''
        dd = ddtTool()
        dd.send_requests(data)

    @classmethod
    def tearDownClass(cls):
        log = logTool()
        log.info('{}[AD_END]{}'.format('>' * 30, '<' * 30))


if __name__ == '__main__':
    unittest.main()

1.5 执行测试用例示例

import unittest,os,time
from public.pathTool import htmlreport_path,cases_path,root_path
from BeautifulReport.BeautifulReport import BeautifulReport
from HTMLTestRunner.HTMLTestRunner import HTMLTestRunner
class reportTool:
    def get_dir_cases(self,dir):
        '''
        根据指定目录获取匹配的测试用例
        :param casedir: 测试用例目录
        :return: 测试用例集
        '''
        path = os.path.join(cases_path,'{}/'.format(dir))
        suit = unittest.defaultTestLoader.discover(path,pattern='*.py')
        return suit

    def get_all_cases(self):
        '''获取根目录下所有测试用例'''
        path = cases_path
        suit = unittest.defaultTestLoader.discover(path,pattern='*.py',top_level_dir=None)
        return suit

    def reportTool(self,suit):
        '''初始化报告样式'''
        # 用时间作为测试报告文件名的一部分
        current_time = time.strftime("%Y%m%d_%H_%M_%S")
        BeautifulReport(suit).report(filename='{}'.format(current_time), description='终端接口测试报告',
                                            log_path=htmlreport_path)
上一篇 下一篇

猜你喜欢

热点阅读