Skip to content

测试用例流程设计

霍格沃兹测试开发

ceshiren.com


现有测试用例的问题

  • 可维护性不高
    • 低模块化性
    • 高耦合性
    • 缺乏可复用性
  • 可读性较差
    • 命名不清晰
    • 缺乏注释和文档
    • 不符合代码风格指南
  • 稳定性较差
    • 未处理异常
    • 断言不足
    • 依赖不清晰

用例结构设计

  • 测试用例的编排
    • 测试用例组织
    • 测试步骤
    • 前置条件
    • 测试数据
    • 操作和期望结果
    • 清理操作
    • 参数化测试
  • 测试用例的项目结构
    • 测试套件
    • 目录结构
    • 共享资源
    • 报告和日志
    • 版本控制
    • 测试框架集成

自动化测试用例流程-回顾

  • Pytest
    • setup_method setup_class setup_module
    • fixture
  • Junit4
    • @BeforeClass、@AfterClass
    • @Before、@After
  • TestNG
    • @BeforeClass @BeforeMethod
    • @BeforeGroup、@BeforeSuite
  • Junit5:@BeforeClass @BeforeEach

uml diagram


web 自动化测试-用例设计

类型 框架对应 作用
前置 setup_class/BeforeAll 准备测试数据
实例的初始化
setup/BeforeEach 恢复用例初始状态
数据清理(也可以在用例级别完成)
后置 teardown_class/AfterAll driver 进程退出
teardown/AfterEach 恢复用例初始状态
数据清理(也可以在用例级别完成)

恢复用例初始状态

uml diagram

uml diagram


恢复用例初始状态

  • 每条用例执行完成都quit(),虽然能够确保初始状态,但可能会影响执行效率。
  • 可以封装一个方法,在每条用例执行完成后调用该方法,实现回到首页的操作,以优化上述问题。

数据清理

  • 调用业务接口:通常是一种高效的方式,能够确保以业务逻辑为基础的数据清理
  • 通过 UI 自动化方式操作:可以模拟用户界面操作,适用于需要还原用户界面状态的情况
  • 连接数据库执行 SQL(不推荐)

web 自动化测试项目结构

# python 项目
- page: 页面对象
- testcases: 测试用例
- utils: 公共工具
- log: 日志信息
# java项目
- main/java
    - com.xxx.page: 页面对象
    - com.xxx.utils: 公共工具
    - resources: 日志配置
- test/java
    - com.xxx: 测试用例