第1次测试记录 - xych5q/online-shop GitHub Wiki

第1次测试记录

第 1 组 · 2026-10-07 首版,2026-10-13 更新 | 对应 用例表 UC-01~15、需求规格说明书 FR-S / FR-B 结论:JUnit 自动化 18/18 通过,接口冒烟脚本 44 项断言全通过,浏览器端到端流程走通(8 张截图)。 完整用例清单与可执行脚本见 test-cases/测试用例清单.md 与 test-cases/api-smoke.sh(测试用例清单)。

一、单元测试(JUnit 5,mvn test 实测)

环境:JDK 21 + Maven 3.9,@SpringBootTest + MockMvc 走真实 MVC 流程。 结果(2026-10-13 整改后复跑):Tests run: 18, Failures: 0, Errors: 0, Skipped: 0 — BUILD SUCCESS;2026-10-07 首版为 Tests run: 16,用例 17、18 为整改后新增(见下表)。

# 测试(BuyerApiTest,11 组) 对应用例 结果
1 错误密码登录返回 401 UC-01 通过
2 不带 X-Token 访问卖家总览返回 401 UC-01(鉴权) 通过
3 发布负价格商品返回 400 UC-03 通过
4 发布成功且价格保留两位小数 UC-03 通过
5 已有在售商品再次发布返回 400 UC-03(单品约束) 通过
6 三个买家依次入队位次分别为 1/2/3 UC-12 通过
7 姓名或电话为空提交意向返回 400 UC-12 通过
8 无效口令码查询返回 404 UC-13 通过
9 修改电话后位次不变 UC-14 通过
10 撤销后该口令码查询返回 404 UC-15 通过
11 商品冻结后提交意向返回 400 UC-11(冻结规则) 通过
# 测试(TradeFlowTest,5 组) 对应用例 结果
12 交易中手动解冻返回 400 UC-04(状态约束) 通过
13 标记交易失败后下一位自动递补 UC-06 / UC-08 通过
14 失败买家重新排队后原口令码有效且排到队尾 UC-08 通过
15 标记交易成功后队列剩余意向全部转失败 UC-07 通过
16 历史详情意向流水不含口令码 FR-S10(隐私) 通过
17 交易中买家可撤销且队列自动递补(2026-10-13 新增) UC-15 / FR-B5 通过
18 交易中撤销且队列无人时商品恢复在售(2026-10-13 新增) UC-15 / FR-B5 通过

代码位置:server/src/test/java/com/group1/onlineshop/(BuyerApiTest 252 行 + TradeFlowTest 240 行),明细见 买家端模块实现。

用例 17、18 的来由:第 1 次阶段性评审后,Wiki 关键页面点评指出原实现「交易中拒绝撤销」与 FR-B5「交易中买家仍可撤销」矛盾。已回改代码并补这两条用例做回归保护,详见 需求规格说明书 4.2。

二、卖家端接口实测(curl 逐条)

发布交付时 12 个卖家端接口逐条 curl 验证通过(登录、发布、冻结/解冻、意向购买人、进入交易、标记结果、失败处置、下架、历史、改密码等),记录见 卖家端模块实现。

三、浏览器端到端验证

按买家→卖家完整流程实测,8 张运行截图见 前端页面说明:买家首页 → 提交意向 → 口令码展示 → 凭码查位次 → 卖家登录 → 后台商品 → 历史记录 → 修改密码。

四、遗留项

  • Selenium 端到端自动化、JMeter 性能测试:迭代 2(见评审报告 3.5)
  • Q4(口令码字符集是否排除易混字符):现取值 8 位大写字母数字、剔除 I/O/0/1(32 个字符),已于 2026-10-13 提交需求方追认(需求问题库 #11)
  • 图片上传的 JPG/PNG ≤5MB 校验未纳入自动化;并发场景未验证