Bull's blog Bull's blog
首页
工作
  • 分类
  • 标签
  • 归档
关于

Bull

首页
工作
  • 分类
  • 标签
  • 归档
关于
  • 马上消费

  • 斗虫

    • 基础课件

      • python基础和条件语句
      • 基础数据类型_改
      • 函数
      • 1 函数练习
      • 32文件操作
      • 3 异常
      • 面向对象
      • 1面向对象案例-学生管理系统
      • 1Python基础练习题
      • 自动化测试理论
      • 2 接口测试基础
      • 3 requests
      • 4 代码
      • 5 简单封装
      • 1 pytest
      • 签名的设计
      • 接口case设计
        • 3 新建一个接口
        • x装饰器语法
        • httprunner2.x工具快速入门
        • httprunner3.x的简介
        • Flask框架
        • 了解任务
        • mock服务
        • UI自动化策略
        • PageObject模式
        • pytest参数化进阶
        • pytest框架生成报告
        • Yaml运用
        • 日志类模板
        • 持续集成
        • jdk配置
        • Linux基础
        • Jenkins主从测试任务
        • conda管理项目环境
        • 面试题-栈结构
        • 面试题-找众数
        • 正交测试法
        • 装饰器
        • 综合面试题_原版
      • RF

    • 天眼查

    • 某米

    • 工作经历
    • 斗虫
    • 基础课件
    wangyang
    2023-09-02
    目录

    接口case设计

    # 什么是完整的接口自动化测试

    在工作中常说的"接口测试",一般说的是一个完整的实施方案。包括:

    测试数据的准备

    测试脚本的开发

    测试执行

    测试结果分析汇报

    测试集的维护优化

    那么现在聚焦到“接口脚本的开发”。

    首先要了解如何用手工方式进行。在这个基础上,掌握接口测试思路。

    继而引入工具(例如fiddler、postman等)

    引入代码,编写测试项目(框架)

    持续优化为测试框架引入各种功能(AI生成case、可视化方案、线上巡检/监控。。。)

    # 真实项目里怎么开始

    对于接口测试阶段来说,一个理想的开始,就是从完美的接口文档开始的。它应该有以下几个特性:

    开发工程师在设计和开发接口的过程中,就在不断维护和更新接口文档

    它包含了每一个接口的访问方式、访问路由、输入参数含义、返回参数含义,以及一个完整的例子

    但是很多时候,我们没有没有获得足够的资料,那么开始接口测试前。就需要先做一些工作,把以上元素整理出来。

    image-20201010104328252

    举例:

    假设我们的码同学商城,现在需要进行接口测试。但是目前没有接口文档,开发也是新接手项目。这时候我们可以使用fiddler来观察请求,结合业务和前端输入就能得到一份接口文档

    image-20201010110319567

    分析:

    该接口传输的参数,发现正好和前端输入匹配

    接口名称有"user\login"的字样,显然和登录业务是相关的

    接口响应中,有信息“登录成功”匹配我们前端做的登录操作

    进一步的:

    # 1.需要搞清楚参数的来源和意义

    ​ 例子中有2个参数‘accounts’和‘pwd’

    ​ 两个参数的来源是前端输入

    ​ 根据“登录”业务的特性,两个参数应该存在一下几种情况:

    ​ 用户名:已注册、未注册、已注销、黑名单等状态

    ​ 密码:正确密码、错误密码、为空、特殊字符

    ​ 登录业务往往涉及了“状态保存”,那么cookie、token、session可能会在该接口产生

    # 2.要确定响应信息的含义

    ​ 这里的响应信息中,'msg'写了‘登录成功’。这可以作为检查点。

    ​ code的值具体代表了什么?是请求成功,还是指登录成功。一般来说,根据code不同。会对应不同的后续业务(例如code:-1, code:0),针对这需要补充哪些case

    ​ data字段一般对杨具体数据,目前看是空的。它又会对应什么逻辑

    ​ 我们的业务是否对登录操作记录,记录这里的那几个字段?

    # 小结:

    现在,假设我们没有任何附加需求和资料。只针对单一接口来设计case,

    从业务维度:

    保证这个接口可以按照需求,返回出信息

    可以正确处理传入的参数

    可以兼容不同形式的入参(对于中间服务很重要)

    可以的绝传入非正确的参数,并且给出合理、友好的提示

    抛开业务我们还可以从以下角度设计case

    • 可靠性:参数容错、异常状态修复、CAP(分布式系统一致性)
    • 功能性:业务功能、幂等(多次及并发调用结果一致)、事务测试、共享数据线程安全
    • 易用性:设计风格、错误提示(不返回代码异常)、文档友好性
    • 单接口性能:并发响应时间、非并发响应时间

    *如果资源充分,我们可以尽量发散设计最够多的case

    # 3.业务流测试(多接口串联)

    工作之中的大部分的测试场景中,我们需要串行多个接口,才能完成一个完整的业务逻辑。多个接口之间的:

    业务逻辑

    通过数据传递

    业务容错

    都是需要我们进行case覆盖的点,尤其在多接口串联的场景下。我们更关心每个参数,是否对业务链上的其他有影响

    # 总结

    接口测试的执行方式、设计思维都和业务测试并不完全一致

    # 交集部分

    是它们都会涉及到业务逻辑测试

    是站在我们系统的角度来进行测试

    # 差异部分

    更加关注业务中的数据流转

    单接口测试需要严格检查,参数、逻辑边界

    业务流测试着重考虑业务正向流程

    #python自动化#自动化入门
    上次更新: 2023/09/05, 02:16:11
    签名的设计
    3 新建一个接口

    ← 签名的设计 3 新建一个接口→

    最近更新
    01
    30.快速实现接口重构测试---deepdiff库使用
    09-21
    02
    概述
    09-07
    03
    概述
    09-07
    更多文章>
    Theme by Vdoing | Copyright © 2018-2025 Evan Xu | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式