功能上线前的常见尴尬
小李是公司后端开发,最近接到一个需求:给用户中心加个“会员等级展示”功能。他按接口文档写完代码,自测没问题就扔给了前端同事小王。可小王一接,发现接口返回的字段名和文档对不上,等级图标也没给对应映射关系,卡了一上午。
这其实是扩展功能测试中最常见的问题——前后端脱节。功能不是一个人的事,尤其在加新模块时,协作不顺,测试就容易反复返工。
接口定义要“先说清楚”
加功能第一步,别急着写代码,先坐下来对齐数据结构。比如新增一个“优惠券领取”功能,前端要显示哪些信息?后端能提供什么字段?什么时候算领取成功?这些得在开发前定好。
推荐用简单的 JSON 示例作为沟通语言:
{
"code": 0,
"msg": "ok",
"data": {
"couponList": [
{
"id": 1001,
"name": "满100减20",
"status": "available",
"expireTime": "2024-12-31 23:59:59"
}
]
}
}这个格式前后端都看得懂,测试时也能直接当样例用。
模拟数据让前端不等后端
后端接口还没写完,前端不能干等着。可以用 mock 工具模拟响应。比如用 Mock.js 拦截请求:
Mock.mock('/api/coupon/list', {
'code': 0,
'data|5': [
{
'id|+1': 1,
'name': '@ctitle(4,6)',
'status': '@pick(["available", "used", "expired"])'
}
]
});这样前端能提前画页面、做交互逻辑,等真实接口一通,替换一下 base URL 就能跑通。
测试阶段要“互相踩坑”
功能联调时,别各测各的。前端可以故意传错参数,看后端有没有校验;后端也可以临时返回异常状态码,比如 500 或业务错误码,看前端有没有兜底提示。
有一次测试订单导出功能,前端传了非法时间格式,后端直接崩了。后来加上了时间校验,返回清晰的错误信息:
{
"code": 40012,
"msg": "时间格式错误,请使用 YYYY-MM-DD HH:mm:ss"
}这种“互坑”反而让功能更稳。
上线前一起过一遍流程
功能开发完,别急着提交测试报告。前后端一起走一遍完整流程:从前端点击按钮,到后端处理,再到页面反馈,看有没有遗漏。
比如“修改昵称”功能,前端发了请求,后端改完了,但忘了在返回结果里带回新昵称。页面没刷新,用户还以为没改成功。这种细节只有联调时才容易发现。
多花十分钟一起跑一遍,能省掉上线后的紧急修复。