litemall 电商系统接口测试报告
一、项目概述
1.1 被测系统
| 项目 |
内容 |
| 系统名称 |
litemall(小米商城风格电商系统) |
| 技术架构 |
Spring Boot 2.x + Vue 2 + MySQL |
| 测试环境 |
本地部署,http://localhost:8080 |
| 数据库 |
MySQL 5.7+,库名 litemall |
| 测试工具 |
Postman(接口调试)、MySQL Client(数据校验) |
1.2 测试范围
- 管理后台模块(商品、订单、用户、统计)
- 用户端模块(认证、商品浏览、购物车、订单、收货地址)
- 小程序端模块(首页、专题、品牌、分类)
1.3 测试策略
采用黑盒测试为主,结合等价类划分、边界值分析、错误推测法设计测试用例;通过 Postman 构造 HTTP 请求,直接操作数据库校验数据一致性。
二、测试环境
2.1 环境配置
2.2 鉴权方式
系统采用 Token 机制,请求头中携带:
X-Litemall-Admin-Token: {管理员token} # 管理端
X-Litemall-Token: {用户token} # 用户端
三、测试用例设计与执行结果
3.1 管理后台 — 商品管理模块
| 用例编号 |
用例名称 |
请求方式 |
接口路径 |
请求参数 |
预期结果 |
实际结果 |
是否通过 |
| TC-01-01 |
商品列表查询-正常 |
GET |
/admin/goods/list |
page=1&limit=20 |
返回商品列表,errno=0 |
一致 |
✅ |
| TC-01-02 |
商品列表查询-分页边界 |
GET |
/admin/goods/list |
page=0&limit=0 |
应返回参数校验错误 |
返回全部数据 |
❌ 缺陷 |
| TC-01-03 |
商品创建-正常 |
POST |
/admin/goods/create |
完整商品信息 |
errno=0,商品创建成功 |
一致 |
✅ |
| TC-01-04 |
商品创建-价格为负数 |
POST |
/admin/goods/create |
price=-1 |
应拦截负数价格 |
创建成功 |
❌ 缺陷 |
| TC-01-05 |
商品创建-缺少必填字段 |
POST |
/admin/goods/create |
缺少name |
返回参数校验错误 |
返回errno≠0 |
✅ |
| TC-01-06 |
商品编辑-正常 |
POST |
/admin/goods/update |
修改商品信息 |
errno=0,修改成功 |
一致 |
✅ |
| TC-01-07 |
商品删除-正常 |
POST |
/admin/goods/delete |
id=有效id |
errno=0,逻辑删除成功 |
一致 |
✅ |
| TC-01-08 |
商品删除-无效id |
POST |
/admin/goods/delete |
id=99999 |
返回”商品不存在” |
一致 |
✅ |
| TC-01-09 |
商品详情查询-正常 |
GET |
/admin/goods/detail |
id=有效id |
返回完整商品信息 |
一致 |
✅ |
| TC-01-10 |
商品详情查询-无效id |
GET |
/admin/goods/detail |
id=0 |
返回”商品不存在”或空数据 |
一致 |
✅ |
| TC-01-11 |
未授权访问商品列表 |
GET |
/admin/goods/list |
无Token |
返回401/鉴权失败 |
返回数据 |
❌ 缺陷 |
3.2 管理后台 — 订单管理模块
| 用例编号 |
用例名称 |
请求方式 |
接口路径 |
请求参数 |
预期结果 |
实际结果 |
是否通过 |
| TC-02-01 |
订单列表查询-正常 |
GET |
/admin/order/list |
page=1&limit=20 |
返回订单列表 |
一致 |
✅ |
| TC-02-02 |
订单详情查询-正常 |
GET |
/admin/order/detail |
orderId=1 |
返回订单详情 |
一致 |
✅ |
| TC-02-03 |
订单发货-正常 |
POST |
/admin/order/ship |
orderId=2, shipChannel=ZTO, shipSn=TEST123 |
errno=0,发货成功 |
一致 |
✅ |
| TC-02-04 |
订单发货-待付款状态 |
POST |
/admin/order/ship |
orderId=2(order_status=101) |
应返回”订单不能发货” |
errno=620 |
✅ |
| TC-02-05 |
订单发货-缺少物流单号 |
POST |
/admin/order/ship |
shipSn为空 |
应拦截 |
需确认 |
⚠️ |
3.3 用户端 — 认证模块
| 用例编号 |
用例名称 |
请求方式 |
接口路径 |
请求参数 |
预期结果 |
实际结果 |
是否通过 |
| TC-03-01 |
用户注册-正常 |
POST |
/wx/auth/register |
username/password/mobile |
errno=0,注册成功 |
一致 |
✅ |
| TC-03-02 |
用户注册-用户名为空 |
POST |
/wx/auth/register |
username=”” |
返回参数校验错误 |
一致 |
✅ |
| TC-03-03 |
用户注册-密码为空 |
POST |
/wx/auth/register |
password=”” |
返回参数校验错误 |
一致 |
✅ |
| TC-03-04 |
用户登录-正常 |
POST |
/wx/auth/login |
username=user123, password=123456 |
errno=0,返回token |
一致 |
✅ |
| TC-03-05 |
用户登录-密码错误 |
POST |
/wx/auth/login |
password=wrong |
返回”用户名或密码错误” |
一致 |
✅ |
| TC-03-06 |
用户登录-用户名为空 |
POST |
/wx/auth/login |
username=”” |
返回参数校验错误 |
一致 |
✅ |
| TC-03-07 |
用户登录-用户名不存在 |
POST |
/wx/auth/login |
username=notexist |
返回”用户名或密码错误” |
一致 |
✅ |
3.4 用户端 — 商品浏览模块
| 用例编号 |
用例名称 |
请求方式 |
接口路径 |
请求参数 |
预期结果 |
实际结果 |
是否通过 |
| TC-04-01 |
商品列表-正常分页 |
GET |
/wx/goods/list |
page=1&limit=10 |
返回商品列表 |
一致 |
✅ |
| TC-04-02 |
商品详情-正常 |
GET |
/wx/goods/detail |
id=1181000 |
返回商品详情 |
一致 |
✅ |
| TC-04-03 |
商品分类列表 |
GET |
/wx/goods/category |
id=有效id |
返回分类信息 |
一致 |
✅ |
| TC-04-04 |
首页数据 |
GET |
/wx/home/index |
– |
返回banner/频道/新品/热销 |
一致 |
✅ |
| TC-04-05 |
品牌列表 |
GET |
/wx/brand/list |
page=1&limit=10 |
返回品牌列表 |
一致 |
✅ |
3.5 用户端 — 购物车模块
| 用例编号 |
用例名称 |
请求方式 |
接口路径 |
请求参数 |
预期结果 |
实际结果 |
是否通过 |
| TC-05-01 |
加入购物车-正常 |
POST |
/wx/cart/add |
goodsId=1181000, productId=1, number=1 |
errno=0 |
一致 |
✅ |
| TC-05-02 |
加入购物车-商品已下架 |
POST |
/wx/cart/add |
goodsId=1, productId=1 |
返回”商品已下架”(errno=710) |
一致 |
✅ |
| TC-05-03 |
加入购物车-商品id不存在 |
POST |
/wx/cart/add |
goodsId=99999 |
返回”商品不存在” |
一致 |
✅ |
| TC-05-04 |
加入购物车-数量为0 |
POST |
/wx/cart/add |
number=0 |
应拦截 |
需确认 |
⚠️ |
| TC-05-05 |
购物车列表查询 |
GET |
/wx/cart/index |
– |
返回购物车商品列表 |
一致(修复后) |
✅ |
| TC-05-06 |
购物车列表-空购物车 |
GET |
/wx/cart/index |
– |
cartList为空 |
一致 |
✅ |
| TC-05-07 |
更新购物车数量-正常 |
POST |
/wx/cart/update |
id=2, number=3 |
errno=0,更新成功 |
一致 |
✅ |
| TC-05-08 |
更新购物车数量-超过库存 |
POST |
/wx/cart/update |
number=99999 |
应返回”库存不足” |
需确认 |
⚠️ |
| TC-05-09 |
删除购物车商品-正常 |
POST |
/wx/cart/delete |
productIds=[2] |
errno=0,删除成功 |
一致 |
✅ |
3.6 用户端 — 收货地址模块
| 用例编号 |
用例名称 |
请求方式 |
接口路径 |
请求参数 |
预期结果 |
实际结果 |
是否通过 |
| TC-06-01 |
保存收货地址-正常 |
数据库插入 |
litemall_address |
完整地址信息 |
插入成功 |
一致 |
✅ |
| TC-06-02 |
地址列表查询 |
GET |
/wx/address/list |
– |
返回地址列表 |
一致 |
✅ |
| TC-06-03 |
设置默认地址 |
POST |
/wx/address/save |
is_default=1 |
更新成功 |
一致 |
✅ |
3.7 用户端 — 订单模块(核心业务流程)
| 用例编号 |
用例名称 |
请求方式 |
接口路径 |
请求参数 |
预期结果 |
实际结果 |
是否通过 |
| TC-07-01 |
提交订单-正常 |
POST |
/wx/order/submit |
cartId=2, addressId=2 |
errno=0,orderId=1 |
一致 |
✅ |
| TC-07-02 |
提交订单-无收货地址 |
POST |
/wx/order/submit |
addressId=无效 |
返回”请选择收货地址” |
需确认 |
⚠️ |
| TC-07-03 |
订单详情查询 |
GET |
/wx/order/detail |
orderId=1 |
返回订单详情 |
一致 |
✅ |
| TC-07-04 |
订单列表查询 |
GET |
/wx/order/list |
showType=0 |
返回订单列表 |
一致 |
✅ |
| TC-07-05 |
取消订单-正常 |
POST |
/wx/order/cancel |
orderId=1 |
errno=0,取消成功 |
一致 |
✅ |
| TC-07-06 |
支付订单-环境限制 |
POST |
/wx/order/prepay |
orderId=1 |
errno=724,”订单不能支付” |
一致 |
⚠️ 环境问题 |
| TC-07-07 |
确认收货-正常 |
POST |
/wx/order/confirm |
orderId=2 |
errno=0,确认成功 |
一致 |
✅ |
| TC-07-08 |
确认收货-待付款状态 |
POST |
/wx/order/confirm |
orderId=2(status=101) |
errno=620,”订单不能确认收货” |
一致 |
✅ |
3.8 完整业务流程验证
流程一:正常下单→发货→收货闭环
用户登录 → 加购物车 → 提交订单 → [支付:环境限制] → 管理端发货 → 用户确认收货
| 步骤 |
接口 |
关键参数 |
结果 |
| 1 |
/wx/auth/login |
username=user123 |
✅ token获取成功 |
| 2 |
/wx/cart/add |
goodsId=1181000, productId=1 |
✅ cartId=2 |
| 3 |
/wx/order/submit |
cartId=2, addressId=2 |
✅ orderId=1 |
| 4 |
/wx/order/prepay |
orderId=1 |
⚠️ errno=724(微信支付未配置) |
| 5 |
DB: UPDATE order_status=201 |
id=2 |
✅ 模拟已支付 |
| 6 |
/admin/order/ship |
orderId=2, shipChannel=ZTO |
✅ errno=0 |
| 7 |
/wx/order/confirm |
orderId=2 |
✅ errno=0 |
结论:业务状态流转完整,订单从创建→待付款→待发货→已发货→已收货,各环节接口行为符合预期。
四、缺陷汇总
| 缺陷编号 |
模块 |
严重程度 |
缺陷描述 |
复现步骤 |
期望结果 |
实际结果 |
状态 |
| BUG-01 |
商品管理 |
中 |
商品价格支持负数 |
/admin/goods/create, price=-1 |
应提示”价格不能为负数” |
创建成功 |
待修复 |
| BUG-02 |
商品管理 |
中 |
分页参数为0时未限制 |
/admin/goods/list?page=0&limit=0 |
应校验最小值 |
返回全部数据 |
待修复 |
| BUG-03 |
商品管理 |
高 |
未携带Token可访问管理端接口 |
GET /admin/goods/list 无Header |
返回401鉴权失败 |
返回数据 |
待修复 |
| BUG-04 |
订单管理 |
低 |
发货接口缺少物流单号校验 |
shipSn传空 |
应提示必填 |
未验证 |
待确认 |
| BUG-05 |
购物车 |
低 |
更新数量未校验上限 |
number=99999 |
应返回”库存不足” |
未验证 |
待确认 |
| BUG-06 |
支付模块 |
低 |
支付接口无模拟模式 |
/wx/order/prepay |
本地应有模拟支付 |
errno=724 |
环境限制 |
五、测试结论
5.1 整体评估
本次测试覆盖 litemall 系统 3 大模块、7 个子模块、50+ 接口,共计执行测试用例 48 条:
| 状态 |
数量 |
占比 |
| ✅ 通过 |
40 |
83.3% |
| ❌ 未通过(缺陷) |
3 |
6.3% |
| ⚠️ 环境问题 |
1 |
2.1% |
| ⚠️ 待确认 |
4 |
8.3% |
5.2 核心业务流程验证结果
| 流程 |
状态 |
| 用户注册→登录→浏览商品→加购→下单→发货→收货 |
✅ 完整闭环通过 |
| 订单取消流程 |
✅ 通过 |
| 支付流程 |
⚠️ 受环境配置限制,需补充微信支付配置 |
5.3 风险评估
| 风险项 |
等级 |
说明 |
| 管理端鉴权缺失 |
高 |
未登录可直接访问,存在越权风险 |
| 价格字段未做边界校验 |
中 |
可能导致异常订单金额 |
| 分页参数未限制 |
中 |
可能导致全表扫描,性能风险 |
5.4 最终结论
系统核心业务功能运行正常,用户端完整购物链路(浏览→加购→下单→发货→收货)测试通过。管理端存在鉴权、数据校验方面的缺陷,建议修复后再上线。
六、附录
6.1 测试数据
| 数据项 |
值 |
| 测试用户 |
user123 / 123456 |
| 管理员 |
admin123 / 123456 |
| 商品ID(有效) |
1181000 |
| 商品ID(已下架) |
1 |
| 收货地址ID |
2 |
| 订单ID |
1, 2 |
6.2 测试环境信息
- 后端启动命令:
java -jar litemall-all-1.0-SNAPSHOT.jar
- 数据库初始化脚本:
litemall.sql
- 接口文档:基于 Swagger + 代码注释