前言:当前端与后端有数据交互时(前端发送请求,后端响应数据,前端处理显示数据),对前端进行测试时,我们如何测试能准确的进行完全覆盖呢?
首先:要参考后端开发设计的接口文档,详细阅读接口文档,明确接口URL、请求方式、支持格式、请求参数、返回结果等。
接下来我们可以借助Charles等代理工具辅助,针对以下方面进行测试工作:
一、从请求-Request入手进行检查
- 请求的URL是否正确
- 请求的方式是否正确,比如GET、POST方式
- 传递的参数、值的类型是否符合接口文档的要求(需要参考接口文档),比如name是string类型的
- 前端发起请求的时机对吗?(可以在需求评审时了解、和开发沟通了解请求逻辑的设计)
-- 手动刷新页面时是否发起请求
-- 自动刷新时是否要发起请求
-- 检查互相依赖的接口的请求顺序,比如先请求A后请求B?
-- 进入页面时是否发起请求
-- 退出页面时是否发起请求
-- 定时请求(比如每5分钟)
-- 热启动时是否发起请求
-- 冷启动时是否发起请求
-- 等等 - 请求发起
-- 请求发起成功
-- 请求发起失败->客户端是如何兼容异常场景的 - 请求取消
-- 从客户端主动取消请求
-- 服务端响应超时->客户端应该中断请求,并有相应的提示 - 请求次数对吗?
-- 是否发起了多余的请求
-- 是否会连续不停的发请求
二、从返回结果-Response着手进行检查
- 检查返回结果中的字段
-- 字段有正常返回值时,客户端处理和展示是否正常
-- 字段不存在时,客户端处理是否正常,不会引发crash等问题
-- 字段值的前后有空格(比如 跳转URL),客户端是否可以正常跳转
-- 字符串(String)分别有值、为空时,客户端处理和显示是否正常
-- 数字(Number)分别有值、为空时,客户端处理和显示是否正常
-- 对象(Object)分别有值、为空时,客户端处理和显示是否正常
-- 数组(Array)分别有值、为空时,客户端处理和显示是否正常
-- 布尔值(Boolean)分别有值、为空时,客户端处理和显示是否正常 - 检查接口响应中、响应超时
-- 在接口响应未返回之前,客户端处理是否正常
-- 接口响应超时(无响应),比如1分钟未返回,客户端会怎么处理?->主动中断请求 - 检查Error_code(业务码) & Error_description
-- 前端弹对应的toast(参考需求)
-- 前端弹对应的alert(参考需求)
-- 连续报错时,客户端的toast、alert提示应该做freeze处理 - 检查https状态码,保证客户端不会发生crash或者影响其他功能展示
-- statusCode=200 OK
-- statusCode=400 Bad Request
-- statusCode=502 Bad Gateway