如何在测试框架中实现数据驱动测试? 如何在测试框架中实现测试套件?

59 阅读2分钟

测试框架中实现数据驱动测试

可以通过参数化测试用例来使用多组数据执行相同的测试逻辑。下面我举例几种方式:

1、 Python - pytest + parametrize, 该框架使用pytest.mark.parametrize 装饰器实现参数化, parametrize 接收两个参数:参数名(字符串)和参数值列表(元组列表),每个元组代表一组测试数据,pytest 会自动为每组数据生成一个独立的测试用例 2、将数据外部化,可将测试数据存 JSON 文件 对应优点总结:

  • 可读性强:测试用例清晰展示输入和预期输出
  • 便于维护:测试逻辑和数据分离。
  • 提高覆盖率:轻松添加多组测试数据。
  • 可减少代码冗余:相同逻辑只需编写一次。

测试套件是组织和运行多个测试用例的机制

可按功能、模块或优先级分组测试。下面我举例几种方法:

  • Python - unittest 框架, 通过 TestSuite 类组合测试用例, TestSuite 可手动添加测试方法, 使用 TextTestRunner 执行套件,输出测试结果
  • JUnit 5 使用 @Suite 注解和 @SelectPackages /@SelectClasses 定义套件,需要添加 JUnit Platform Suite 依赖Maven/Gradle, 可以使用 IDE 或命令行运行 MyTestSuite 类即可执行套件
  • 跨语言通用模式
tests/
├── unit/           # 单元测试套件
│   ├── test_user.py
│   └── test_product.py
├── integration/    # 集成测试套件
│   ├── test_api.py
│   └── test_database.py
└── conftest.py     # 测试配置(如 pytest)

测试套件优点

  • 测试分组:按功能、模块或执行速度分组(fast/slow)。
  • 执行顺序:多数框架支持控制测试用例的执行顺序(@Order 注解)。
  • 条件执行:可基于环境变量或配置选择性运行套件(如跳过指定库测试)。
  • 测试报告聚合:测试报告可区分不同套件的通过率。

推荐阅读

软件测试/测试开发丨常见面试题与流程篇(附答案)

软件测试/测试开发丨学习笔记之Allure2测试报告

软件测试/测试开发丨Pytest测试用例生命周期管理-Fixture

软件测试/测试开发丨Python学习笔记之基本数据类型与操作

软件测试/测试开发丨学习笔记之列表、元组、集合

软件测试/测试开发丨Python常用数据结构-学习笔记

软件测试/测试开发丨Python控制流-判断&循环

软件测试/测试开发丨Python学习笔记之内置库科学计算、日期与时间处理

软件测试/测试开发丨面试题之软素质与反问面试官篇(附答案)

软件测试/测试开发丨iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践