python 數據驅動(ddt)


   DDT包含類的裝飾器ddt和兩個方法裝飾器data(直接輸入測試數據),file_data(可以從json或者yaml中獲取測試數據)

實例代碼:

import ddt
import  unittest
test_data1 = [{"username": "zhangsan", "pwd": "zhangsan"},
              {"username": "lisi", "pwd": "lisi"},
              {"username": "wangwu", "pwd": "wangwu"},
              ]
test_data2 = [{"username": "wukong", "pwd": "wukong"},
              {"username": "wuneng", "pwd": "woneng"},
              {"username": "wujing", "pwd": "wujing"},
              ]
@ddt.ddt
class Test(unittest.TestCase):
    def setUp(self):
        print("Start!")
    def tearDown(self):
        print("end!")
    @ddt.data(*test_data1)
    def test_ddt1(self, data):
        print(data)
    @ddt.data(*test_data2)
    def test_ddt2(self, data):
        print(data)
if __name__ == "__main__":
    unittest.main()

運行結果

 

接口測試使用:

import requests,ddt,unittest,json
data=[200,201,200,201]
@ddt.ddt
class DoubanTest(unittest.TestCase):
    def setUp(self):
        pass
    def tearDown(self):
        pass
    def beij(self):
        cliner=requests.get('https://api.douban.com/v2/user/q')
        m=cliner.status_code
        return m
    @ddt.data(*data)
    def test1(self,data):
        m=self.beij()
        print(data)
        self.assertEqual(m,data)
if __name__ =='__main__':
    unittest.main()

運行示范

 

示范的是@data 這個裝飾器的以上。

下面我們來看看文件的

@file_data(filename)

import ddt
import  unittest
@ddt.ddt
class Test(unittest.TestCase):
    def setUp(self):
        print("Start!")
    def tearDown(self):
        print("end!")
    @ddt.file_data('data.yaml')
    def test_ddt1(self, value):
        print(value)
if __name__ == "__main__":
    unittest.main()

運行結果

支持json yaml文件類型

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM