当前位置: 首页 > news >正文

DDT数据驱动

 DDT数据驱动

步骤功能说明代码实现位置
1. 环境准备导入unittestddt等依赖库import unittest
from ddt import ddt, data, unpack
2. 启用DDT装饰器在测试类上标记@ddt以启用数据驱动@ddt
class TestUserAPI(unittest.TestCase):
3. 测试数据定义从外部文件加载
4. 参数化测试方法使用@data加载数据,@unpack拆分参数@data(*TEST_CASES)
@unpack
def test_login(...)
 
# ================ 1. 环境准备 ================
import unittest
import requests
from ddt import ddt, data, unpack  # 关键DDT模块

# ================ 2. 测试类定义 ================
@ddt  # 必须添加ddt装饰器
class TestUserAPI(unittest.TestCase):
    # ========== 3. 测试数据准备 ==========
    # 从外部文件加载(如JSON/YAML)
    # @data(*load_test_data("data/user_cases.json"))

    # ========== 4. 参数化测试方法 ==========
    @data(*TEST_CASES)  # 解包测试数据
    @unpack  # 拆分元组到方法参数
    def test_login(self, case_name, username, password, expected_code):
        """多场景登录接口测试"""
        url = "https://api.example.com/login"
        payload = {"username": username, "password": password}
        response = requests.post(url, json=payload)
        
        # 断言验证
        self.assertEqual(response.status_code, expected_code,
                         f"用例 [{case_name}] 失败: 状态码不符合预期")

# ================ 5. 执行测试 ================
if __name__ == "__main__":
    unittest.main()

相关文章:

  • 说一下yolo的一些概念 和 自己对 置信度阈值 和图像处理模板匹配的理解
  • java设计模式之建造者模式《装修启示录》​
  • 基于DrissionPage的DY无水印视频采集
  • C++与OO思想的联系
  • React 18 如何定义变量,及赋值 与渲染
  • python网络爬虫开发实战之网页数据的解析提取
  • docker常见的命令详细介绍
  • java小白日记38(集合-List)
  • 来源于胡椒的亚甲二氧桥CYP450-文献精读119
  • Android Window浮窗UI组件使用JetPack
  • 剑指 Offer II 111. 计算除法
  • 如何在 Linux 系统中部署 FTP 服务器:从基础配置到安全优化
  • Softmax温度调节与注意力缩放:深度神经网络中的平滑艺术
  • iStoreOS软路由对硬盘格式化分区(转化ext4)
  • Redisson分布式锁(超时释放及锁续期)
  • 已安装MFC,仍然提示“error MSB8041: 此项目需要 MFC 库”
  • 14:00面试,15:00就出来了,问的问题过于变态了。。。
  • golang errgroup用法介绍结合
  • [特殊字符] 2025蓝桥杯备赛Day8——B2118 验证子串
  • Cesium 自定义路径导航材质
  • 乌外长:乌方准备无条件停火至少30天
  • 这座古村,藏着多少赣韵风华
  • 巴基斯坦军方:印度导弹袭击巴首都附近空军基地
  • 两部门发布山洪灾害气象预警:北京西部、河北西部等局地山洪可能性较大
  • 绍兴柯桥:用一块布托起中国制造的新经纬
  • 中国中古史集刊高质量发展论坛暨《唐史论丛》创刊四十周年纪念会召开