《基于Python的全栈自动化测试》之 数据驱动ddt

数据驱动ddt:

前面我们讲了,在测试用例中采用 超继承unittest.TectCase的 __init__() 方法来接收和初始化参数,在执行模块传入参数:

超继承unittest.TectCase的 __init__() 方法:↓↓↓

执行模块中传入参数:↓↓↓

实际上还有一种更常见的用 数据驱动ddt 来进行传参:

1. 首先要导入ddt模块的ddt、data

2.用 @ddt 装饰测试类,用 @data 装饰测试用例

3.读取参数 + 接收参数

import unittest
from ddt import ddt,data  # 修饰器
from class_13.job.assignment_1229.common.do_excel import DoExcel
from class_13.job.assignment_1229.test_case.math import Math


'''1.用 @ddt 装饰测试类'''
@ddt
class TestMath(unittest.TestCase):

    '''2.读取参数'''
    doexcel = DoExcel('test_data.xlsx', 'Sheet')
    data_1 = doexcel.get_excel()
    
    '''3.用 @data 装饰测试用例
       4.用 动态参数* 来接收参数(接收的是列表,然后被 动态参数* 拆解为一个个的字典,依次传入测试用例中)'''
    @data(*data_1)
    def test_sub(self,data_1):

        '''5.在用例内部读取字典中的values作为参数'''
        result = Math().sub(data_1['a'], data_1['b'])
        try:
            self.assertEqual(result, data_1['expect'])
            test_result = 'PASS'
        except AssertionError:
            test_result = 'FAILED'
            raise
        finally:
            self.doexcel.write_excel(data_1['case_id'], result, test_result)

然后在执行模块中的只需要导入测试类然后执行就行了:

import unittest
import HTMLTestRunnerNew
from class_13.job.assignment_1229.test_case.test_math import TestMath

suite = unittest.TestSuite()
loader = unittest.TestLoader()

suite.addTest(loader.loadTestsFromTestCase(TestMath))
'''注意注意注意:
   使用ddt的话必须采用 从测试类 或测试模块导入到 suite,
   不能直接使用suite.addTest()测试用例名导入'''


with open(r'E:\Pycharm\PyProjects\lemon\class_13\job\assignment_1229\test_report\测试报告.html', 'wb') as file:
    runner = HTMLTestRunnerNew.HTMLTestRunner(stream=file,
                                              title='测试报告.html',
                                              verbosity=2,
                                              description='第一次执行测试报告',
                                              tester='ChenXun')
    runner.run(suite)

注意添加测试套件的方式必须用导入测试类或模块的方式!!!

 

END!!!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值