1,问题调研

  • 追查公司一年来所有的故障原因,定位问题起因
  • 访谈CTO,产品经理,研发,测试,运维收集质量痛点
  • 分析业务架构与流程调用
  • 分析监控系统了解业务使用数据

    2,测试计划

  • 待测业务范围

    • 一般选取最为核心的
  • 待测业务场景用例
  • 待测业务接口分析

    3,业务用例设计

  • 业务的输入

    • 启动配置
    • 请求输入
    • 第三方依赖
  • 业务流程
    • 传统基于需求的用例设计
    • 基于代码精准化的用例设计
  • 业务输出

    • 接口响应
    • 中间状态数据

      4,测试用例辅助设计

  • 静态分析方法

    • 阅读文档 swagger等
    • 阅读代码,系统源代码
  • 动态分析

    • 动态抓包分析
    • 动态trace或者debug
    • 分析log日志和流量数据

      5,接口测试封装思想

  • 配置

    • 根据配置文件获取出配置和依赖
  • 接口封装
    • 封装接口调用进行抽象封装
    • 类似于po的效果
  • 业务流程

    • 业务用例设计,含有多个api行程的流程定义
    • 不要再包含任何接口实现的细节
    • 断言

      6,接口测试框架主要组成元素

  • api对象 完成对接口的封装

  • 接口测试框架 完成对api的驱动
  • 配置模块 完成对配置文件的读取
  • 数据封装 数据构造与测试用例的数据封装
  • Utils 其他功能封装,改进原生框架不足
  • 测试用例 调用Page/api对象实现业务并进行断言

简单来说是对外隐藏实现细节,外部直接调用api来实现接口测试。

7,用例编写

  • 选择语言
    • python
    • java
    • go kotlin
    • 尽量要使用与研发一致的编程语言和技术栈
  • 选择合适的测试框架

    • java + RestAssured + junit4/junit5/TestNg + Allure2
    • python + request + pytest + allure2
    • python + httprunner

      8,测试用例构建细节

  • 使用package管理业务模块

  • 使用class管理业务功能
  • 使用method完成业务具体行为
  • 使用配置文件读取初始配置
  • 使用继承规划用例执行顺序
  • 使用testcase完成测试用例的落地
  • 使用assertion完成业务正确性校验
  • 使用数据文件管理用例的数据驱动
  • 使用jenkins完成持续集成

    9,框架层封装

  • 引擎封装

  • 配置文件读取
  • 数据驱动 模板 pojo
  • 多环境支持
  • 长期可维护性