前言:当前端与后端有数据交互时(前端发送请求,后端响应数据,前端处理显示数据),对前端进行测试时,我们如何测试能准确的进行完全覆盖呢?

首先:要参考后端开发设计的接口文档,详细阅读接口文档,明确接口URL、请求方式、支持格式、请求参数、返回结果等。

接下来我们可以借助Charles等代理工具辅助,针对以下方面进行测试工作:

一、从请求-Request入手进行检查

  1. 请求的URL是否正确
  2. 请求的方式是否正确,比如GET、POST方式
  3. 传递的参数、值的类型是否符合接口文档的要求(需要参考接口文档),比如name是string类型的
  4. 前端发起请求的时机对吗?(可以在需求评审时了解、和开发沟通了解请求逻辑的设计)
    -- 手动刷新页面时是否发起请求
    -- 自动刷新时是否要发起请求
    -- 检查互相依赖的接口的请求顺序,比如先请求A后请求B?
    -- 进入页面时是否发起请求
    -- 退出页面时是否发起请求
    -- 定时请求(比如每5分钟)
    -- 热启动时是否发起请求
    -- 冷启动时是否发起请求
    -- 等等
  5. 请求发起
    -- 请求发起成功
    -- 请求发起失败->客户端是如何兼容异常场景的
  6. 请求取消
    -- 从客户端主动取消请求
    -- 服务端响应超时->客户端应该中断请求,并有相应的提示
  7. 请求次数对吗?
    -- 是否发起了多余的请求
    -- 是否会连续不停的发请求

二、从返回结果-Response着手进行检查

  1. 检查返回结果中的字段
    -- 字段有正常返回值时,客户端处理和展示是否正常
    -- 字段不存在时,客户端处理是否正常,不会引发crash等问题
    -- 字段值的前后有空格(比如 跳转URL),客户端是否可以正常跳转
    -- 字符串(String)分别有值、为空时,客户端处理和显示是否正常
    -- 数字(Number)分别有值、为空时,客户端处理和显示是否正常
    -- 对象(Object)分别有值、为空时,客户端处理和显示是否正常
    -- 数组(Array)分别有值、为空时,客户端处理和显示是否正常
    -- 布尔值(Boolean)分别有值、为空时,客户端处理和显示是否正常
  2. 检查接口响应中、响应超时
    -- 在接口响应未返回之前,客户端处理是否正常
    -- 接口响应超时(无响应),比如1分钟未返回,客户端会怎么处理?->主动中断请求
  3. 检查Error_code(业务码) & Error_description
    -- 前端弹对应的toast(参考需求)
    -- 前端弹对应的alert(参考需求)
    -- 连续报错时,客户端的toast、alert提示应该做freeze处理
  4. 检查https状态码,保证客户端不会发生crash或者影响其他功能展示
    -- statusCode=200 OK
    -- statusCode=400 Bad Request
    -- statusCode=502 Bad Gateway