python中模块-ddt
python中第三方模块-ddt
ddt安装命令通过pip install ddt 进行安装
ddt方法讲解:
ddt.ddt装饰类。在脚本嘴上方进行导入ddt框架后,可以使用装饰类ddt,来装饰自定义的测试用例,被ddt装饰的类可以直接使用ddt测试框架
ddt.data :用来拆分data的数据。通常data中包含的每一个值都会作为一个单独的参数传给测试方法,如果这些值是用元组或者列表传进来的,
可以用unpack方法将其自动分解成多个参数
ddt_file_data:装饰测试方法,参数是文件名,文件可以是json或者yaml类型
注意:文件是以 .yml 或者是 .yaml 结尾。ddt都会作为yaml的类型进行处理。
其他文件都会作为json文件处理
如果文件是列表:列表的值会作为测试用例参数,同时,会作为测试用例方法后缀显示
如果文件是字典:字典的key会作为测试用例方法的后缀显示,字典的value会作为测试用例参数
ddt实例讲解:
from ddt import ddt,data,unpack import unittest @ddt class case(unittest.TestCase): def setUp(self): print('---用例开始----') def tearDown(self): print("---用例结束----") @data("武汉","荆门","石牌") #使用字符串的形式单个参数进行传入, # data可以重复进行调用这个函数所以打印了三次 def test01(self,values1): print(values1) if __name__ == '__main__': unittest.main()
ddt 多个参数进行传参 元组的形式进行传参,使用unpack进行参数分解
@ddt class case(unittest.TestCase): def setUp(self): print('---用例开始----') def tearDown(self): print("---用例结束----") @data(("湖北","武汉"),("湖南","长沙")) @unpack #使用字符串的形式单个参数进行传入, # data可以重复进行调用这个函数所以打印了三次 def test01(self,values1,values2): print(values1,values2) if __name__ == '__main__': unittest.main()
多个参数进行传参,列表的形式进行传参
@ddt class case(unittest.TestCase): def setUp(self): print('---用例开始----') def tearDown(self): print("---用例结束----") @data(["湖北","武汉"],["湖南","长沙"],) @unpack #使用字符串的形式单个参数进行传入, # data可以重复进行调用这个函数所以打印了三次 def test01(self,values1,values2,values3): print(values1,values2,values3) # if __name__ == '__main__': unittest.main()
多个参数进行传参,字典的格式进行传参
@ddt class case(unittest.TestCase): def setUp(self): print('---用例开始----') def tearDown(self): print("---用例结束----") @data({"values1":"湖北","values2":"武汉"},{"values1":"湖南","values2":"长沙"},) #使用字典进行传参的时候必须前面带上参数名称进行传参 @unpack #使用字符串的形式单个参数进行传入, # data可以重复进行调用这个函数所以打印了三次 def test01(self,values1,values2): print(values1,values2) if __name__ == '__main__': unittest.main()
'''
使用xlrd进行传参时,检查文档格式是否正确是否清除前后空格符
为什么使用unitest要继承unitestTestcase基类
DDT数据驱动(data driver test(数据驱动测试))
断言:===将实际记过与预期结果进行对比成功pass
失败就是bug

浙公网安备 33010602011771号