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文件类型

 

posted @   北漂的雷子  阅读(4158)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示