1、DDT介绍
DDT(Data-Driven Tests)数据驱动测试,测试数据与测试行为分离,通过数据来驱动测试
DDt数据驱动测试,允许通过使用不同的测试数据运行一个测试用例,根据参数的个数可以运行多个不同的测试用例
2、为什么使用DDT
1、提高代码复用率减少代码冗余
2、可以将测试数据使用一个文件来存储
3、数据和测试业务分离
4、DDT库的安装
1、直接在PyCharm->File->Setting->Project->Project Interpreter页面添加
2、使用命令pip install ddt下载并安装
5、API
@ddt 类装饰器,作用于类上,应用于测试用例类
@data 作用于方法上,把参数作为测试数据
@unpack 方法装饰器添加解压功能
6、具体应用示例
import unittest
from ddt import ddt, data, unpack
'''
1、导入ddt相关包:from ddt import ddt, data, unpack
2、类上添加unittest.TestCase作用于测试用例上,和unittest一起使用
'''
@ddt
class Testddt(unittest.TestCase):
def setUp(self):
pass
'''结果运行三次'''
@data(12, 13, 14)
def test_1(self, value):
print(value)
'''结果运行一次,出(12,13,14)'''
@data((12, 13, 14))
def test_2(self, value):
print(value)
'''结果运行一次,输出12,13,14
参数个数看的是元祖里面的个数
'''
@data((12, 13, 14))
@unpack
def test_3(self, value1, value2, value3):
print(value1, value2, value3)
'''结果运行3次,分别输出(3, 2) (4, 3) (5, 3)'''
@data((3, 2), (4, 3), (5, 3))
def test_4(self, value):
print(value)
@data((3, 2), (4, 3), (5, 3))
@unpack
def test_5(self, value1, value2):
print(value1,value2)
@data([3, 2], [4, 3], [5, 3])
def test_6(self, value1):
print(value1)
@data([3, 2], [4, 3], [5, 3])
@unpack
def test_7(self, value1, value2):
print(value1,value2)
@data({'first': 1, 'second': 3, 'third': 2},{'first': 4, 'second': 6, 'third': 5})
def test_8(self, value1):
print(value1)
'''
字典拆包,参数需要和key名称一致,分别对应key值输出1 3 2
'''
@data({'first': 1, 'second': 3, 'third': 2})
@unpack
def test_9(self, first, second, third):
print(first,second,third)
7、总结
1、ddt针对的测试数据类型有元组、字典、列表、单个值,根据情况可使用@unpack进行拆包,可解析成多个参数提供使用。
2、示例中的结果,需要反复运行得到结果并分析
参考ddt库API网址:https://ddt.readthedocs.io/en/latest/api.html