UnitTest自动化测试框架结合数据驱动(DDT)应用实践

【原文链接】UnitTest自动化测试框架结合数据驱动(DDT)应用实践

1、安装ddt

pip install ddt

2.使用方式

首先导入ddt,然后在测试类上使用@ddt.ddt装饰,测试方法使用@ddt.data()装饰,data里面填写参数即可,具体使用如下

2.1、测试函数有一个参数

代码如下:

import unittest
import ddt


@ddt.ddt
class TestDemo01(unittest.TestCase):

    @ddt.data(0, 1, 2, 3, 4, 5, -1, -2, -3, -4, -5)
    def test_01(self, x):
        print(x)


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

执行结果如下:

0
1
2
3
4
5
-1
-2
-3
-4
-5


Ran 11 tests in 0.004s

OK

2.2 、测试函数有多个参数,比如有两个参数

需要在测试函数上使用一个@ddt.unpack来装饰,参数使用元组形式,代码如下:

import unittest
import ddt


@ddt.ddt
class TestDemo01(unittest.TestCase):

    @ddt.data((0, 1), (2, 3), (4, 5), (-1, -2), (-3, -4))
    @ddt.unpack
    def test_01(self, x, y):
        print(x)
        print(y)
        print("*************************")


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

执行结果如下:

0
1
*************************
2
3
*************************
4
5
*************************
-1
-2
*************************
-3
-4
*************************


Ran 5 tests in 0.004s

OK

2.3、测试数据从yaml文件读取

例如在demo.yml文件中编写如下内容:

-
  name: "redrose2100"
  age: 33
-
  name: "redrose2200"
  age: 22
-
  name: "redrose2300"
  age: 25

在测试用例上使用@ddt.file_data()装饰器装饰,代码如下

import unittest
import ddt


@ddt.ddt
class TestDemo01(unittest.TestCase):

    @ddt.file_data("demo.yml")
    def test_01(self, **kwargs):
        print(kwargs.get("name"))
        print(kwargs.get("age"))
        print("-------------------")


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

执行结果如下:

redrose2100
33
-------------------
redrose2200
22
-------------------
redrose2300
25
-------------------


Ran 3 tests in 0.003s

OK

这里可以看到因为ymal文件中设置了三组数据,所以这里显示执行了3个用例,这就是数据驱动,适合用于测试多组数据合法性的场景,比如接口测试中测试各个参数是否有合法校验的时候就非常适合采用数据驱动测试的方法

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redrose2100

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值