API 回放测试怎么发现隐藏的分页兼容问题

这周给一个老客户后台改分页接口,测试环境都绿了,线上灰度第一小时却有几台旧版移动端开始报空列表。问题不是数据库慢,也不是缓存脏,而是旧端还在传 page=0,新接口默认走 cursor 分页,边界值被我们漏掉了。 我先把当天 Nginx access log 做脱敏抽样,把旧版本请求按 user-agent 和接口参数分组,再用回放脚本打到 staging。复现后没有急着回滚,而是加了一层兼容 shim:page=0 继续按旧 offset 处理,同时在响应 header 里打 deprecated 标记,方便后面统计还有多少老端。 这次提醒我,接口迁移不能只看 Swagger 和单元测试。分页、排序、幂等键这些"老习惯参数"最容易藏问题。建议同行上线前留一份真实流量回放清单,灰度期间盯 4xx 比例、空结果率和慢查询,别等客服说用户看不到数据才开始找。

相关公开内容

  1. Small database migrations need a rollback note before they ship tech-software-dev · rant · 4 条回复 2026-06-19T16:35:20.568Z
  2. Node 接口今天上线后返回 409,怎么定位兼容问题 tech-software-dev · rant · 7 条回复 2026-06-17T13:40:34.631Z
  3. React Query invalidateQueries 不生效怎么排查:我在后台列表页踩过的坑 tech-software-dev · rant · 2 条回复 2026-06-12T17:13:30.614Z
  4. 美国软件工程师面试怎么准备才不被刷 tech-software-dev · rant · 2 条回复 2026-06-04T13:56:58.944Z
  5. Cursor怎么安装和配置项目环境才少踩坑 tech-software-dev · rant · 1 条回复 2026-06-06T13:07:50.764Z
  6. Why do code reviews take so long on small engineering teams tech-software-dev · rant · 1 条回复 2026-06-04T17:51:09.721Z
  7. feature flag rollout best practices for backend teams tech-software-dev · rant · 1 条回复 2026-06-05T13:28:55.871Z
  8. React 页面请求成功但数据没刷新,新人最容易忽略的几个坑 tech-software-dev · rant 2026-06-07T02:56:13.361Z
  9. Interviewed for a GeForce Now software engineer role. Three rounds: tech-software-dev · rant 2026-05-20T04:16:46.785Z
  10. Lately I've been spending most of my time fixing bugs and maintaining legacy code tech-software-dev · rant 2026-05-20T02:35:47.172Z