ddt-数据驱动测试

ddt(data driven test)数据驱动测试
由外部数据集合来驱动测试用例
核心思想:数据和测试代码分离
应用场景:一组数据来执行相同的操作
安装cmd:pip install ddt

1、一组数据中,每个数据为单个值
用法:在测试类前标记ddt,在单个测试用例前标记data、unpack、file_data
import ddt
import unittest

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

#1):一组数据中,每个数据为单个值
    @ddt.data(1,2,3,4,5)
    def test_print(self,a):
        print(a)

运行结果:

2、对传入的数据分解用unpack,不加unpack说明是两组数据

@ddt.ddt
class test_ddt(unittest.TestCase):
    @ddt.data([1,2,3],[10,11,12])
    def test_add(self,a):
        print(a)
     #print(a[0]+a[1]+a[2])
#运行结果 Ran 2 tests in 0.001s OK [1, 2, 3] [10, 11, 12]

ok
6
33
@ddt.ddt
class test_ddt(unittest.TestCase):

    @ddt.data([1,2,3],[10,11,12])
    @ddt.unpack #对[1,2]分解数据,有多少个值传对应参数,data数据的值数据要对应
    def test_add(self,a,b,c):
        print(a+b+c)

#运行结果
OK

6
33

3、从变量(一组数据)当中取值,(表达式:*变量名)

listA = [1,2,3,4,5]

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

# 2):一组数据中,每个数据为一个列表或一个字典
#     从变量(一组数据)当中取值--变量是字典/列表(表达式:*变量名)
    @ddt.data(*listA)
    def test_a(self,a):
        print(a)

#运行结果
OK
1 2 3 4 5

4、从文件读取数据file_data

#前提:Mydict.json数据为:{"name":"jiao","sex":"female","age":"18"}
@ddt.ddt
class test_ddt(unittest.TestCase):

# 3):文件对象:json、yaml
# 变量是字典:键将用作测试用例名称的后缀,而值将作为测试数据提供。
# 列表中的每个值将对应于一个测试用例,并且该值将连接到测试方法名称。
    @ddt.file_data("D:\\PyCharm\\project\\python\\Mydict.json")
    def test_readData_fromJsonFile(self,a):
        print("从文件读取")
        print(a)

#运行结果
从文件读取
jiao
从文件读取
female
从文件读取
18

 

posted @ 2018-08-16 09:50  雨彡  阅读(1006)  评论(0编辑  收藏  举报