ddt 全称:data driver test 数据驱动测试
ddt装饰器:用来装饰类
file_data装饰器:用来装饰方法
data装饰器:用来装饰方法
数据驱动,指在自动化测试中处理测试数据的方式。
通常测试数据与功能函数分离,存储在功能函数的外部位置。在自动化测试运行时,数据驱动框架会读取数据源中的数据,
把数据作为参数传递到功能函数中,并会根据数据的条数多次运行同一个功能函数。
数据驱动的数据源可以是函数外的数据集合、CSV 文件、Excel 表格、TXT 文件,以及数据库等。
ddt作用:
1、可以循环读取文件中的数据,用来做接口自动化数据驱动测试
2、可以配合xlutils,xlrd,xlwt读写.xls格式文件,数据回写
3、可以配合openpyxl读写.xlsx格式文件,数据回写'''
为什么要做数据驱动?
1、数据驱动能够减少重复代码
没有数据驱动时,并且同一个功能函数存在多个测试数据,你只能多次调用这个功能函数;
另外一旦某一个测试数据有更改/删除,你需要在函数调用里去更改相应的测试数据,非常不方便。
但有了测试驱动时,无须进行多次调用,而且当测试数据发生改变时, 仅需要更改数据源文件的数据就可以了。
2.数据所属的测试用例失败,不会影响到其他测试数据对应的测试用例
没有数据驱动之前,假设我们有这样的一个函数:
test_data = [0, 1, 0, 1]
def test_without_data_driven(records):
for x in records:
assert x > 0
test_without_data_driven(test_data)
当运行这段代码时,因为 test_data 的第一个值是 0, 它不大于 0。所以断言失败,所有 test_data 这个函数 0 后面的测试数据都没有执行。
如果有了数据驱动,则数据驱动会把这一个测试按照测试数据分解成多个测试,所有第一个测试数据失败不也会影响到后面的测试结果。