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

posted @ 2021-08-13 22:20  多测师-星sir  阅读(466)  评论(0)    收藏  举报