阿里巴巴测试怎么准备
阿里测试面试常问交易:幂等、超卖、回调乱序。这是事故级质量。
五题覆盖下单、库存、回调、大促和值班。用你测过的交易来答。
阿里怎么面测试
- 会问你如何构造重复请求。
- 大促会问降级。
- 准备对账思维。
面试阶段与知识点
第一批不把每个阶段拆成独立 URL,避免程序化重复页。阶段对应下面的题,练完再用模拟面试串起来。
- 幂等:下单。
- 库存:超卖。
- 回调:乱序。
- 大促:放量。
值得开口练的题
每题给考察点、思路、结构化参考答案和追问。参考答案用来组织语言,面试时必须换成你自己的项目事实。
如何测重复提交只生成一笔订单?
考察点
- 连点与重试
- 幂等键校验
- 库表对账
回答思路
我会从连点、超时重试和杀进程恢复三条路径施压,断言同一幂等键在订单库只落一笔,并可查询到唯一终态。
结构化参考答案
- 前端连点、接口层重复 POST、支付前杀进程恢复后再次提交,每种路径记录 requestId 或 idempotencyKey。
- 每次操作后查询订单列表与详情接口,并直连测试库核对 order 表行数与状态,拒绝「页面只显示一条但库里有双份」。
- 刻意绕过前端防抖(如脚本直连接口),验证服务端幂等是否真正生效,而不只依赖 UI 锁按钮。
- 收口提供可重复执行的压测脚本、对账 SQL 或报表链接,并标注大促前必须重跑的频次。
面试官可能追问
- 前端下单锁被绕过脚本直打接口时,你如何验证服务端幂等?
- 接口层重复请求你会如何在测试环境构造?
- 订单重复风险你会如何设计日常对账或巡检?
库存 1 件双请求,你如何构造超卖测试?
考察点
- 真并发
- 库存断言
- 回补验证
回答思路
我会用并发闸门对同一 SKU 同时发起两笔下单请求,观察库存扣减与订单成功数,断言不出现负库存或双成功无回补。
结构化参考答案
- 在测试环境准备库存为 1 的商品,用 JMeter、脚本或内部压测工具在同一毫秒级窗口打出两笔 createOrder。
- 断言:最多一笔支付成功或两笔均失败但有明确原因;inventory 表 quantity 不为负,超卖时有回补或取消机制。
- 若存在缓存预减,分别测「缓存命中旧值」和「DB 扣减失败回滚」两条链路,避免只测 happy path。
- 用例可重复跑并记录成功率,作为大促前库存模块的必跑门禁项。
面试官可能追问
- 有缓存预减时,超卖测试需要额外覆盖哪些节点?
- 回补延迟到达时,用户侧应看到什么状态才算合格?
- 如何在不占用真实仓库库存的前提下构造这类用例?
支付回调和关单乱序,用例怎么写?
考察点
- 顺序注入
- 终态断言
- 对账补偿
回答思路
我会注入「先关单后回调」和「先回调后关单」两种乱序,断言订单终态可解释、资金可对账,不存在沉默丢钱或双扣。
结构化参考答案
- 在测试环境通过 mock 或延迟队列控制回调与关单消息的到达顺序,覆盖支付成功、超时关单、重复回调等组合。
- 每种组合断言唯一终态:已支付、已关闭待退款或明确失败,用户侧文案与后台状态一致。
- 核对支付流水、订单状态和退款单是否闭环;重复回调应幂等,不应二次加权益或二次扣款。
- 把高频乱序场景沉淀为自动化用例,并在大促演练中纳入支付链路专项。
面试官可能追问
- 你会如何模拟支付回调延迟数分钟才到达?
- 同一笔支付重复回调多次时,断言标准是什么?
- 对账报表由谁日常查看、测试如何配合验证?
大促降级关掉推荐,购买是否仍可用?你如何测?
考察点
- 降级开关
- 主路径购买
- 监控可用
回答思路
我会打开大促降级开关关闭推荐模块,走搜索或直达 SKU 的购买主路径,断言加购、结算和监控项仍正常且无白屏。
结构化参考答案
- 在预发或演练环境通过配置中心打开「关闭个性化推荐」类开关,确认生效版本与生效范围。
- 从商品详情加购、进购物车、提交订单到支付前校验,全程不应因推荐服务不可用而阻断交易。
- 页面降级应有合理占位或隐藏模块,不能出现整页白屏或无限加载;关键接口超时有友好提示。
- 同时检查核心交易监控、告警和日志采集仍上报,避免降级后「看不见故障」。
面试官可能追问
- 配置中心本身不可用时的容灾行为,你会如何单独测?
- 大促降级演练一般多久做一次、包含哪些角色?
- 自动化如何切换不同降级开关组合?
大促现场要跳过你的拦截,你怎么办?
考察点
- 资金红线
- 升级路径
- 书面记录
回答思路
涉及资金正确性、超卖和支付安全的拦截我不会放行;其余风险书面升级给负责人,记录决策并约定事后补测与复盘时间。
结构化参考答案
- 先区分需求类型:体验优化可协商,幂等、库存、回调、对账类缺陷属于红线,需明确告知后果。
- 当场拉值班负责人或业务 owner 到同一频道,用监控数据、复现步骤和影响面说明「跳过」的实际代价。
- 若仍被决定放行,要求书面或工单记录:决策人、时间、已知风险和补测 deadline,测试侧留存截图。
- 高峰过后优先补跑被跳过的用例,并把是否应升级为发布门禁写入复盘结论。
面试官可能追问
- 资金与库存红线的最终 owner 一般是谁、你如何找到对方?
- 现场节奏很快,你如何减少拦截被口头绕过的概率?
- 事故或大促结束后,这类「临时放行」如何复盘?
和岗位、模拟面试一起用
资料管理里保存目标岗位 JD,模拟面试会按简历出题。点题目下的按钮会把本题带进模拟开场,仍需先绑定简历与岗位。