滦平住房和城乡建设厅网站,舟山网络科技有限公司,网站分页符素材,wordpress 卡顿一.DDT简介
Data Driven Testing#xff0c;数据驱动#xff0c;简单来说就是测试数据的参数化
Python数据驱动模块DDT#xff0c;包含类的装饰器ddt和两个方法装饰器data#xff08;直接输入测试数据#xff09;
通常情况下#xff0c;data中的数据按照一个参数传递给…一.DDT简介
Data Driven Testing数据驱动简单来说就是测试数据的参数化
Python数据驱动模块DDT包含类的装饰器ddt和两个方法装饰器data直接输入测试数据
通常情况下data中的数据按照一个参数传递给测试用例如果data中含有多个数据以元组列表字典等数据需要自行在脚本中对数据进行分解或者使用unpack分解数据。
data(*参数)
拆分参数为多个运行多次用例
data(a,b)
那么a和b各运行一次用例
data([a,d],[c,d])
如果没有unpack那么[a,b]当成一个参数传入用例运行
如果有unpack那么[a,b]被分解开按照用例中的两个参数传递
二、安装DDT
pip install ddt
三、导入模块
import requests,json,unittest from ddt import ddt,data,unpack
四、案例
ddt
data(参数)实验证明
1、data可传列表、元祖、字典
2、data参数时是把参数当做一个变量传入处理的#data是元祖import requests,json,unittest
from ddt import ddt,data,unpack
ddt
class Test(unittest.TestCase):name((橙子,橘子),(柠檬,柚子))data(name)def test(self,name):print(name)
if __name____main__:unittest.main()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000sOK
((橙子, 橘子), (柠檬, 柚子))Process finished with exit code 0#data是列表ddt
class Test(unittest.TestCase):name[[橙子,橘子],[柠檬,柚子]]data(name)def test(self,name):print(name)
if __name____main__:unittest.main()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
[[橙子, 橘子], [柠檬, 柚子]]
.
----------------------------------------------------------------------
Ran 1 test in 0.000sOKProcess finished with exit code 0#data是字典ddt
class Test(unittest.TestCase):name{name:王荔,age:11}data(name)def test(self,name):print(name)
if __name____main__:unittest.main()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
.
{name: 王荔, age: 11}
----------------------------------------------------------------------
Ran 1 test in 0.000sOKProcess finished with exit code 0
ddt
data(*参数)实验证明
1、data可传列表、元祖、字典
2、data*参数时是把参数拆分成多个迭代次数import requests,json,unittest
from ddt import ddt,data,unpack
ddt
class Test(unittest.TestCase):name((橙子,橘子),(柠檬,柚子))data(*name)def test(self,name):print(name)
if __name____main__:unittest.main()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
..
(橙子, 橘子)
----------------------------------------------------------------------
(柠檬, 柚子)
Ran 2 tests in 0.000sOKProcess finished with exit code 0ddt
class Test(unittest.TestCase):name[[橙子,橘子],[柠檬,柚子]]data(*name)def test(self,name):print(name)
if __name____main__:unittest.main()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
..
[橙子, 橘子]
----------------------------------------------------------------------
[柠檬, 柚子]
Ran 2 tests in 0.000sOKProcess finished with exit code 0ddt
class Test(unittest.TestCase):name[{name:王荔,age:11},{name:王荔,age:11}]data(*name)def test(self,name):print(name)
if __name____main__:unittest.main()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
..
{age: 11, name: 王荔}
{age: 11, name: 王荔}
----------------------------------------------------------------------
Ran 2 tests in 0.001sOKProcess finished with exit code 0
ddt
data(*参数)
unpack实验证明
1、data可传列表、元祖、字典
2、data*参数时是把参数拆分成多个迭代次数
3、unpack 是把参数拆分成多个参数传入import requests,json,unittest
from ddt import ddt,data,unpack
ddt
class Test(unittest.TestCase):name((橙子,橘子),(柠檬,柚子))data(*name)unpackdef test(self,name1,name2):print(name1,name2)
if __name____main__:unittest.main()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
橙子 橘子
柠檬 柚子
..
----------------------------------------------------------------------
Ran 2 tests in 0.000sOKProcess finished with exit code 0ddt
class Test(unittest.TestCase):name[[橙子,橘子],[柠檬,柚子]]data(*name)unpackdef test(self,name1,name2):print(name1,name2)
if __name____main__:unittest.main()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
..
橙子 橘子
----------------------------------------------------------------------
Ran 2 tests in 0.001sOK
柠檬 柚子Process finished with exit code 0