Pythonデータ駆動モジュールDDT


一.DDTの概要
Data Driven Testing、データ駆動、簡単に言えばテストデータのパラメータ化
Pythonデータ駆動モジュールDDTは、クラスのデコレーションddtと2つのメソッドデコレーションdata(直接入力テストデータ)を含む
通常、dataのデータは1つのパラメータに従ってテスト例に渡され、dataに複数のデータが含まれている場合は、メタグループ、リスト、辞書などのデータで、スクリプトでデータを分解したり、unpackを使用してデータを分解したりする必要があります.
@data(*パラメータ)
分割パラメータは複数で、複数回実行されます.
@data(a,b)
では、aとbはそれぞれ1回の運転例である
@data([a,d],[c,d])
@unpackがない場合は、[a,b]をパラメータ入力例として実行します.
@unpackがある場合,[a,b]は分解され,使用例の2つのパラメータに従って伝達される.
二、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.000s

OK
(('  ', '  '), ('  ', '  '))

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.000s

OK

Process 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.000s

OK

Process 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.000s

OK

Process finished with exit code 0



@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.000s

OK

Process finished with exit code 0



@ddt
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.001s

OK

Process 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)
    @unpack
    def 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.000s

OK

Process finished with exit code 0


@ddt
class Test(unittest.TestCase):
    name=[['  ','  '],['  ','  ']]
    @data(*name)
    @unpack
    def 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.001s

OK
     

Process finished with exit code 0