【学习笔记】python中的数据驱动(DDT)

一.DDT简介

DDT简介

Data Driven Testing,数据驱动,简单来说就是测试数据的参数化

安装DDT

在python中DDT以装饰器的形式,结合Unittest来使用,用来装饰测试类

pip install ddt

要结合单元测试一起做

二.DDT基本使用介绍

导入模块
import unittest
from ddt import ddt, data, unpack
准备一个测试类
class TestCase(unittest.TestCase):

    def test_001(self, a):
        print("打印数据")
        print(a)
        
1.读取单个数据
@ddt
class TestCase(unittest.TestCase):

    @data((1,2,3))
    def test_001(self, a):
        print("打印数据")
        print(a)

或者可以这样

test = (1,2,4)
@ddt
class TestCase(unittest.TestCase):

    @data(test)
    def test_001(self, a):
        print("打印数据")
        print(a)

data使用适用动态参数,把传进来的数组组成元组,再对元组进行用例的遍历,根据索引取值

相当于对每个参数进行遍历

例如
test_1 = (1,2,3)
test_2 = (0,0,0)
@ddt
class TestCase(unittest.TestCase):

    @data(test_1,test_2)
    def test_001(self, a):
        print("打印数据")
        print(a)

输出结果

打印数据
(1, 2, 3)
打印数据
(0, 0, 0)
2.增加unpack参数化测试用例

unpack会把数据data传递的元组进行拆分,这个时候就需要增加动态参数

@ddt#装饰测试类
class TestCase(unittest.TestCase):

    @data((1,2,4),(-1,-2,-3))#装饰测试用例
    @unpack
    def test_001(self, *args):
        print("打印数据")
        print(*args)

结果内容

打印数据
1 2 4
打印数据
-1 -2 -3
参数化
@ddt#装饰测试类
class TestCase(unittest.TestCase):

    @data((1,2,4),(-1,-2,-3))#装饰测试用例
    @unpack
    def test_001(self, a,b,c):
        print("打印数据")
        print(a)
        print(b)
        print(c)

结果

打印数据
1
2
4
打印数据
-1
-2
-3

可以看出,加上了unpack就可以拆分输入的参数


参考文档:
https://www.2cto.com/kf/201805/745595.html

  • 6
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DDT(Data Driver Tests)是一种数据驱动测试的方法。在Python,可以使用ddt库实现数据驱动。安装ddt库可以使用pip install ddt命令。使用@ddt注解可以将测试类标记为数据驱动测试类。使用@data(*case_data)注解可以对测试函数进行数据解压,将每个元素传递给测试函数作为参数。ddt库还提供了@unpack注解,用于将元组或列表的元素按顺序传递给测试函数的参数。下面是一个使用ddt进行数据驱动的示例代码: ```python from ddt import ddt, data, unpack import unittest case_data = [(1, 2, 3), (4, 5, 9), (7, 8, 15)] @ddt class TestDataDriven(unittest.TestCase): @data(*case_data) @unpack def test_addition(self, a, b, expected_result): result = a + b self.assertEqual(result, expected_result) if __name__ == '__main__': unittest.main() ``` 在上述代码,我们使用了ddt库的@ddt注解将测试类TestDataDriven标记为数据驱动测试类。使用@data(*case_data)注解将每个元组的元素作为参数传递给测试函数test_addition。使用@unpack注解将元组的元素按顺序传递给测试函数的参数a、b和expected_result。在测试函数,我们执行了一个加法操作,并使用self.assertEqual()断言来验证结果是否符合预期。 通过这种方式,我们可以轻松地实现数据驱动的测试,并在多组测试数据上运行相同的业务逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python自动化之-DDT数据驱动](https://blog.csdn.net/qq_37982823/article/details/121662033)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [python数据驱动-ddt](https://blog.csdn.net/pangbianlaogu/article/details/80261730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值