接口测试流程和用例设计

  • 一、接口测试作用

    • 提前介入测试,更早发现问题
    • 发现更底层的问题
    • 检查服务器的异常处理能力,提高接口健壮性
  • 二、接口测试流程

    • 需求评审(参与人:产品、研发、测试、设计、埋点等)

    • 技术方案评审(参与人:研发、测试等)

      • 了解技术实现:技术选型、架构、数据库表设计、前后端交互、技术难点、风险点、涉及哪些接口/服务改动、是否需要并发测试
    • 研发开发接口,提供swagger接口文档

    • 测试编写接口测试用例

      • 编写原则:接口测试用例设计应该满足需求文档,且对异常场景进行友好处理;且测试这个接口是否按照接口文档开发。
    • 测试接口文档&初步测试接口

      • 接口文档评审,规范的接口文档需要包含(主要分析请求与响应):
        • 接口名称、url、请求方式,请求参数(名称、含义、类型,是否必填,是否有默认值,取值范围,示例demo)
        • 响应状态码、响应参数(名称、含义、类型、取值范围、示例demo)
    • 前端接口测试&Mock数据

      • 接口层面的测试,确保前端按照后端的要求正确地进行了调用
      • 可以利用Charles对前端发送的请求进行抓包
    • 后端接口测试&业务逻辑覆盖

    • 接口性能调优

    • 接口异常机制

    • 接口版本控制

    • 开始做接口自动化

  • 三、接口测试用例设计

    • 用例设计流程:需求分析->接口文档分析->用例设计->划分用例优先级
    • 用例设计要素
      • 功能模块、描述、优先级、前置条件、请求方式、请求路径、请求头、请求参数、预期状态码、预期结果、实际结果、是否通过
    • 用例设计优先级
      • 优先级-针对所有接口
        • 1:暴露给其他系统、第三方调用的接口
        • 2:系统内部调用的核心功能
        • 3:系统内部调用的非核心功能
      • 优先级-针对单个接口
        • 正向测试用例优先,逆向用例次之
        • 是否需要满足前提条件 > 是否携带默认值参数 > 参数是否必填 >参数类型校验 > 参数数据类型自身的数据范围值限制校验
    • 用例设计思路
      • 输入
      • 接口处理逻辑
      • 输出
        • 状态码
        • 接口超时
          • 未进行超时处理,导致流程阻塞
          • 超时后又收到接口返回,导致逻辑出现
      • 安全和访问权限测试
        • 敏感信息是否加密(身份证号、密码等,前后端数据传输是否加密,日志信息是否加密)
        • 越权测试
          • 横向越权:获取同级别角色的权限(用户A可以访问用户B的敏感资源,如地址)
          • 纵向越权:低权限角色获得高权限角色的权限
        • sql注入
        • 请求频率
        • url是否包括敏感信息
        • 文件漏洞
          • 文件类型限制,文件大小限制、文件个数限制、MinmeType检测、文件重置
      • 性能测试
        • qps
        • 响应时间
        • 吞吐量
        • 并发数量
        • 服务器资源使用率(cpu、memory、IO、Network)
      • 异常测试
        • 幂等(重复提交)
        • 并发测试
        • 事务测试
        • 分布式测试
        • 环境异常
        • 大数据量测试(同时处理大批数据的测试、DB数据量很大时,测试DB操作)
        • 第三方服务异常(在后端代码中调试模拟第三方服务异常)
    • 用例编写工具
      • 使用excel:可通过代码读取excel数据,使自动化更方便
      • 使用xmind:层级清晰,易读性高
  • 四、接口测试方式

    • 手动测试
      • postman
    • 代码测试
      • python的requests
      • Java的httpclient
  • 五、测试数据

    • 在数据库中改
    • 通过代码调用业务接口生成
    • 通过easymock模拟接口
  • 六、接口测试质量评估标准

    • 业务功能覆盖是否完整
    • 参数校验是否达到要求
    • 接口异常场景覆盖是否完整
    • 接口覆盖率是否达到要求
    • 代码覆盖率是否达到要求
    • 性能指标是否满足要求
    • 安全指标是否满足要求
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值