首页 > 其他 > 详细

ddt数据驱动介绍和使用【多测师】

时间:2020-06-12 21:17:38      阅读:43      评论:0      收藏:0      [点我收藏+]
一 ddt基础知识
(数据驱动测试)允许您通过使用不同的测试数据运行一个测试用例,并使其显示为多个测试用例。

参考文档:https://ddt.readthedocs.io/en/latest/

1.  ddt
类装饰器,用于TestCase的子类test方法。

2. 1  data
方法装饰器(数据),包含与要提供给测试的值一样多的参数。

2. 2  file_data
方法装饰器(数据),将从JSON或YAML文件加载测试数据。
只有以“.yml”和“.yaml”结尾的文件才会作为YAML文件加载。所有其他文件都作为JSON文件加载。

3. unpack
额外的装饰器,自动将元组和列表解压缩为多个参数,并将字典解压缩为多个关键字参数。
二 ddt在自动化测试中的运用
(1)单个参数(data)

import unittest
from ddt import ddt,data,unpack

#需要测试的代码
def add(a):
    return (a+1)

#设置值
data1=[{a:1,b:2},{a:1,b:2},{a:1,b:2},{a:1,b:2}]

#使用ddt对被测试代码进行批量测试
@ddt
class TestDDT(unittest.TestCase):

    @data(*data1)
    def test_add(self,data1):
        res=add(data1["a"])
        assert res==data1["b"]

if __name__==__main__:
    unittest.main()
(2)多个参数(data)
import unittest
from ddt import ddt,data,unpack

def add2(a,b):
    return (a+b)

data2=[[{a:1,b:1},2],[{a:1,b:2},3]]

@ddt
class TestDDT(unittest.TestCase):

    @data(*data2)
    @unpack
    def test_add2(self, x,y):
        res = add2(x["a"],x["b"])
        print(res)
        assert res == y


if __name__==__main__:
    unittest.main()
(3)测试文件(file_data.json)
test_data.json

{
  "test1":{"a":1,"b":1},
  "test2":{"a":2,"b":2}
}

testcase.py 
import unittest
from ddt import ddt,file_data

def add(a,b):
    return a+b

@ddt
class TestCase(unittest.TestCase):

    @file_data(test_data.json)
    def test_add1(self,a,b):
        r=add(a,b)
        print(r)

if __name__==__main__:
    unittest.main()

 

ddt数据驱动介绍和使用【多测师】

原文:https://www.cnblogs.com/xiaoshubass/p/13110153.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!