# 巴清农资商城 · 端到端(E2E)测试套件 > **纯 HTTP 黑盒测试,完全不改 Java 项目代码。** > 直接在你的部署机器上跑,像用户一样发真实请求,测全链路联动。 --- ## 目录结构 ``` e2e-test/ ├── README.md ← 本文件:使用说明 ├── requirements.txt ← Python 依赖 ├── config.py ← 配置:API地址、账号密码(你改这里就行) ├── api_client.py ← HTTP 客户端封装(不用动) ├── conftest.py ← pytest 报告配置(不用动) ├── test_flows.py ← 全部测试用例(23 条用例) ├── run_all.bat ← 一键运行(Windows) └── run_all.sh ← 一键运行(Linux / macOS) ``` --- ## 第一步:把整套文件拷贝到部署机器上 ``` 把 e2e-test/ 这个文件夹 整个拷贝到你的部署机器上 ``` --- ## 第二步:改配置 打开 `config.py`,改以下几个地方: ```python # 后端的 IP 和端口 API_BASE_URL = "http://127.0.0.1:8020" # 如果是局域网其他机器: http://192.168.1.100:8020 # 如果是同一台机器: http://127.0.0.1:8020 # 管理员账号 ADMIN_USERNAME = "admin" ADMIN_PASSWORD = "admin123" # 商家账号(需要先手动在后台创建) SELLER_USERNAME = "seller" SELLER_PASSWORD = "123456" SELLER_SHOP_ID = 1 # 是否开启验证码(建议关闭) CAPTCHA_ENABLED = False ``` --- ## 第三步:运行测试 ### Windows 系统 ``` 双击 run_all.bat ``` ### Linux / macOS 系统 ```bash chmod +x run_all.sh ./run_all.sh ``` ### 手动运行(任选一种) ```bash # 全部测试 pytest test_flows.py -v --html=report.html --self-contained-html # 只跑某一组 pytest test_flows.py -v -k "TestPlatformAdmin" --html=report.html pytest test_flows.py -v -k "TestMemberFlow" --html=report.html pytest test_flows.py -v -k "TestSellerFlow" --html=report.html # 只跑单个用例 pytest test_flows.py -v -k "test_06_home_page" --html=report.html ``` --- ## 第四步:查看报告 运行完成后,打开 `report.html` 就能看到完整的测试报告,包含: - 所有测试通过/失败状态 - 每个用例的执行时间 - 失败时的详细错误日志 - 环境信息 直接用浏览器双击打开即可。 --- ## 测试用例清单(23 条) ### 平台管理员流程 | 编号 | 用例 | 描述 | |---|---|---| | TC01 | 管理员登录信息 | 验证登录成功,返回用户信息和权限 | | TC02 | 入驻申请列表 | 查看商户入驻申请列表 | | TC03 | 待审核入驻数量 | 查看有多少待审核的入驻申请 | | TC04 | 待审核商品数量 | 查看有多少待审核的商品 | | TC05 | 平台商品列表 | 查看所有商品列表 | ### 消费者端流程 | 编号 | 用例 | 描述 | |---|---|---| | TC06 | 首页浏览 | 查看 Banner、分类、热销商品 | | TC07 | 会员注册登录 | 注册新用户,登录获取 token | | TC08 | 新增收货地址 | 添加一个默认收货地址 | | TC09 | 搜索商品 | 按关键词搜索商品 | | TC10 | 加购商品 | 将商品加入购物车 | | TC11 | 订单预览 | 预览订单信息 | | TC12 | 提交订单 | 提交订单并获取订单 ID | | TC13 | 查看订单 | 查看订单详情 | | TC14 | 模拟支付 | 调用支付接口 | | TC15 | 确认收货 | 确认收货完成订单 | ### 商家端流程 | 编号 | 用例 | 描述 | |---|---|---| | TC16 | 商品分类选项 | 获取商家可用的商品分类 | | TC17 | 运费模板选项 | 获取运费模板列表 | | TC18 | 商家订单列表 | 查看商家所有订单 | | TC19 | 商家商品列表 | 查看商家所有商品 | ### 全链路串联测试 | 编号 | 用例 | 描述 | |---|---|---| | TC20 | 管理员审核入驻 | 找到待审核的入驻申请,审核通过 | | TC21 | 消费者购买链路 | 浏览首页 → 查看商品详情 | | TC22 | 商家管理链路 | 查看商品 → 查看订单 | | TC23 | 平台管理链路 | 查看待审核商品数 → 待审核入驻数 | --- ## 常见问题 ### Q: 登录报错 "验证码错误" 因为测试脚本默认不处理验证码。 **解决方案一(推荐):关闭验证码** 1. 登录管理后台 → 系统管理 → 系统配置 2. 找到"验证码开关",关闭 3. 或者直接在数据库执行: ```sql UPDATE sys_config SET config_value = 'false' WHERE config_key = 'sys.account.captchaEnabled'; ``` **解决方案二:开启验证码模式** 1. 修改 `config.py` 中 `CAPTCHA_ENABLED = True` 2. 目前验证码模式需要配合手动答题,暂不完全自动化 ### Q: 登录报错 "账号不存在" 管理后台的默认账号是 `admin / admin123`,如果改过,去 `config.py` 里改成正确的。 商家账号需要先在后台创建: 1. 用管理员登录后台 2. 系统管理 → 用户管理 → 新增用户 3. 分配商家角色 ### Q: 测试报错 "没有在售商品" 消费者流程的加购、下单需要系统中已有审核通过的商品。 解决方案: 1. 先用管理员后台创建一个商品分类 2. 创建一个商家账号 3. 发布商品 → 提交审核 → 审核通过 ### Q: 测试报错 "没有收货地址" 下单前需要先有收货地址。测试脚本中 TC08 会自动创建一个地址。 如果报错说明之前一步失败了,先排查 TC08。 ### Q: 测试全部跳过(SKIP) 某些测试会检查前置条件(如是否有在售商品),没有数据时会自动跳过,这是正常行为。 系统中数据越完整,能跑通的用例越多。 ### Q: 报告在哪里? 运行完成后,`report.html` 就在 `e2e-test/` 目录下,双击打开。 --- ## 先决条件清单 在部署机器上执行测试前,请确认: - [ ] 后端服务已启动(Spring Boot 运行中) - [ ] 能通过浏览器访问后端 API(如 `http://127.0.0.1:8020`) - [ ] Python 3.8+ 已安装(运行 `python --version` 确认) - [ ] 已在 config.py 中修改正确的 API 地址 - [ ] 已在 config.py 中修改正确的管理员/商家账号 - [ ] (推荐)验证码已关闭 - [ ] 系统中有基本的测试数据(商品分类、商家、商品等)