python ddt

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

安装

pip3 install ddt

基本使用

@data(a,b)

那么a和b各运行一次用例

@data([a,d],[c,d])

如果没有@unpack,那么[a,b]当成一个参数传入用例运行

如果有@unpack,那么[a,b]被分解开,按照用例中的两个参数传递

案例:

import unittest
from ddt import ddt,data,unpack

@ddt
class MyTesting(unittest.TestCase):
    def setUp(self):
        print('this is the setUp')
    @data([1,2,3])
    def test_1(self,value):
        print(value)

    @data([3,2,1],[5,3,2],[10,4,6])
    @unpack
    def test_minus(self,a,b,expected):
        actual = int(a) - int(b)
        expected = int(expected)
        self.assertEqual(actual, expected)

    @data([2,3],[4,5])
    def test_compare(self,a,b):
        self.assertEqual(a,b)

    def tearDown(self):
        print('this is tearDown')

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

结果分析:

test_1_1__1__2__3_ (__main__.MyTesting) ... this is the setUp
[1, 2, 3]
this is tearDown
ok
test_compare_1__2__3_ (__main__.MyTesting) ... this is the setUp
this is tearDown
ERROR
test_compare_2__4__5_ (__main__.MyTesting) ... this is the setUp
this is tearDown
ERROR
test_minus_1__3__2__1_ (__main__.MyTesting) ... this is the setUp
this is tearDown
ok
test_minus_2__5__3__2_ (__main__.MyTesting) ... this is the setUp
this is tearDown
ok
test_minus_3__10__4__6_ (__main__.MyTesting) ... this is the setUp
this is tearDown
ok
  1. test_1的测试结果是ok的, 因为 [1,2,3] 作为一个整体传给value,所有value 打印的值是[1,2,3]
  2. test_minus的测试结果也是ok的,由于在@data(...)下加了@unpack, 代表会把数据分解,得到3组测试数据
  3. test_compare的测试结果是fail的,由于没有加@unpack, 虽然还是会被理解成2组测试数据,但是[2,3]作为一个整体被传给了a, 因为b就没有值传入了,所以一执行后报了 TypeError: test_compare() missing 1 required positional argument: 'b' 这句错。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 ddt 是第三方模块,需安装,在cmd界面输入命令:pip install ddtDDT包含类的装饰器ddt...
    冲锋丘丘人阅读 1,445评论 0 0
  • python数据驱动模块ddt 一、安装 pip install ddt 二、使用,参考文章https://www...
    公子小白123阅读 805评论 0 0
  • DDT,数据驱动测试,是 “Data-Driven Tests”的缩写。 引入ddt测试必要性 数据驱动测试,可以...
    小娟_bb93阅读 3,608评论 0 9
  • 前言 我们在进行接口测试时,大多数时候都是针对接口的参数设计用例进行测试,而相应的测试步骤基本相同(调用接口,检查...
    萩茝阅读 1,542评论 5 1
  • 一般进行接口测试时,每个接口的传参都不止一种情况,一般会考虑正向、逆向等多种组合。所以在测试一个接口时通常会编写多...
    小二哥很二阅读 2,184评论 0 5