1.DDT是什么?
DDT:Data driver test,实现用例数据的分离
主要结合关键字驱动来实现数据分析
2.DDT实现数据驱动
DDT数据安装:pip install ddt
常用模块:ddt(声明ddt调用),data(数据传参),unpack(数据解包),file_data(读取json、yaml文件)
ddt传参规则:
1. 需要几个参数,则传递几个内容
2. 参数解析与形参是一一对应关系
代码示例:
from ddt import ddt,data,unpack
import unittest
@ddt
class Demo_test(unittest.TestCase):
def setUp(self) -> None:
‘‘‘前置条件‘‘‘
pass
def tearDown(self) -> None:
‘‘‘后置条件‘‘‘
pass
@data([‘大王‘,‘二王‘,‘三王‘])
@unpack
def test_1(self,name,name1,name2):
print(name)
print(name1)
print(name2)
if __name__ == ‘__main__‘:
unittest.main()
运行结果:
Ran 1 test in 0.003s
OK
大王
二王
三王
进程已结束,退出代码 0
方法2:通过读取file文件来实现数据驱动传参
file.txt文件内容如下:
大王,二王
三王,
-------------------------这是分割线--------------------------------------
from ddt import ddt,data,unpack
import unittest
def read_file():
list = []
file = open(‘para.txt‘,‘r‘,encoding=‘utf-8‘)
for line in file.readlines():
list.append(line.strip(‘\n‘).split(‘,‘))
return list
@ddt
class Test_demo(unittest.TestCase):
def setUp(self) -> None:
pass
def tearDown(self) -> None:
pass
@data(read_file())
def test_6(self,name):
print(name)
if __name__ == ‘__main__‘:
unittest.main()
运行结果:
[[‘大王‘, ‘二王‘], [‘三王‘, ‘‘]]
Ran 1 test in 0.003s
OK
进程已结束,退出代码 0
3.DDT+Yaml实现数据驱动
yaml安装:pip install pyyaml
以下为yaml文件内容(以列表list形式):
- 大王
- 二王
- 三王
yaml文件内容(以字典形式):
-
name : 大王
age : 18
-
name : 二王
age : 50
-
name : 三王
age : 28
-----------------------------------------这是分割线------------------------------------------------------------
from ddt import ddt,data,unpack,file_data
import unittest
@ddt
class Demo_test(unittest.TestCase):
def setUp(self) -> None:
‘‘‘前置条件‘‘‘
pass
def tearDown(self) -> None:
‘‘‘后置条件‘‘‘
pass
@file_data(‘para.yaml‘)
def test_4(self,**info):#**表示以字典的形式处理
name = info.get(‘name‘)
print(name)
age = info.get(‘age‘)
print(age)
if __name__ == ‘__main__‘:
unittest.main()
运行结果:
Ran 3 tests in 0.004s
OK
虚竹
30
666
18
chen
88
进程已结束,退出代码 0
原文:https://www.cnblogs.com/Murraya/p/12527590.html