Skip to content

测试指南

  • 文档性质:现行指南
  • 对齐时间:2026-07-02
  • 读者画像:测试、后端、前端、联调、交付、运维
  • 适用范围:backendfrontend-admin-v3frontend-user-v3-wwwfrontend-user-v4-consoleshared 及其联调、回归、发布前验收

1. 文档目标

本文用于定义当前 turaidc 项目的全量测试范围、测试环境、执行顺序、测试项清单、自动化命令、人工验证重点、缺陷分级和交付产出。

发生冲突时按以下顺序处理:

  1. 当前代码真实行为
  2. AGENTS.md
  3. docs/ARCHITECTURE.md
  4. 本文档
  5. 历史习惯

2. 测试总原则

  • 测试目标不是只验证“能不能打开”,而是验证关键业务链路、权限边界、支付/账单/服务/工单等高风险域在当前版本下是否稳定。
  • 自动化优先覆盖可重复、可判定、回归频率高的场景;人工重点覆盖视觉、交互、真实业务串联、第三方依赖和异常提示质量。
  • 后端、前端、联调、发布验收按依赖顺序执行,不跳步。
  • 每次测试必须明确记录测试基线:分支、提交哈希、环境、数据库来源、配置来源、测试时间。
  • 对高风险改动必须做定向回归,不允许只跑通用构建后直接上线。

3. 测试分层

3.1 冒烟测试

  • 目标:快速确认系统基本可用,适合开发自测、提测前、发布后首检。
  • 时长目标:15 到 30 分钟。
  • 重点:
    • 后端可启动
    • 双前端可构建
    • 管理员可登录
    • 用户可登录
    • 站点首页、商品页、用户中心、管理端首页可访问
    • 核心接口不返回 500

3.2 回归测试

  • 目标:确认改动没有破坏既有关键链路。
  • 时长目标:0.5 到 1 个工作日。
  • 重点:
    • 被改业务域全链路
    • 被改业务域上下游影响面
    • 权限、日志、通知、缓存、调度等伴随能力

3.3 全量测试

  • 目标:版本发布前做完整业务覆盖和跨端联调确认。
  • 时长目标:1 到 2 个工作日。
  • 重点:
    • 全业务模块可用性
    • 关键跨域流程闭环
    • 多角色、多状态、多异常路径
    • 发布前环境与生产配置兼容性

3.4 发布验收

  • 目标:确认构建产物、配置、调度、数据库和上线后入口正常。
  • 重点:
    • 构建产物完整
    • 配置项齐全
    • 调度和队列行为正常
    • 登录、下单、支付回调、服务开通等首要链路在线可用

4. 测试环境矩阵

4.1 本地开发环境

  • 后端:PHP 8.3、Laravel 12、MySQL 8、Redis
  • 官网与购买入口:端口以 frontend-user-v3-www 的 Vite 配置为准
  • 管理端:端口以 frontend-admin-v3 的 Vite 配置为准
  • 用户控制台:端口以 frontend-user-v4-console 的 Vite 配置为准
  • 后端入口:http://127.0.0.1:8000
  • 启动命令:
bash
cd backend
php artisan app:serve

cd frontend-user-v3-www
pnpm run dev

cd frontend-admin-v3
pnpm run dev

cd frontend-user-v4-console
pnpm run dev

4.2 测试库要求

  • 推荐使用独立测试数据库,不直接复用生产快照。
  • 若需验证全新安装链路,应使用空库执行:
bash
python backend/scripts/install_db.py --reset
  • 若需验证当前 schema 基线可导出,更新数据库结构后应同步执行:
bash
php backend/scripts/export_database_structure.php

4.3 必要配置项

  • backend/.env 中数据库、Redis、APP_URL、FRONTEND_URL、ADMIN_URL 正确。
  • 第三方依赖如短信、邮件、上游面板、支付宝未准备好时,要明确标注“已模拟”“未验证”或“仅验证本地降级行为”。

5. 测试前准备

5.1 代码准备

  • 拉取目标分支代码。
  • 确认 Composer 和 pnpm 依赖已安装。
  • 记录当前提交哈希:
bash
git rev-parse HEAD

5.2 数据准备

  • 全新安装验证:空库 + backend/scripts/install_db.py --reset(Windows 可用)或 backend/scripts/install_db.sh(Shell 环境)
  • 普通回归验证:使用最新测试基线库
  • 需要支付、账单、服务、返佣、工单、内容等场景时,准备对应测试数据

5.3 账号准备

  • 管理员:cerbo / Temp@123456
  • 用户:2908990438@qq.com / Cheng2008li#7111

若数据库为全新安装态,默认仅保证管理员账号存在;普通用户、商品、供应商、内容等需按测试目标补数据。

6. 自动化测试入口

6.1 后端自动化

全量后端测试:

bash
cd backend
php artisan test

查看测试清单:

bash
cd backend
php artisan test --list-tests

当前后端测试组成:

  • tests/Feature/:大量业务回归测试,覆盖登录、用户、商品、站点、支付、账单、工单、返佣、调度、服务控制台、VNC、安全、黑洞查询等
  • tests/Unit/:规则、编号、快照、驱动、风控等单元测试

6.2 管理端自动化

当前仓库无完整单测框架,但有最小脚本验证与构建验证:

bash
cd frontend-admin-v3
pnpm run build
pnpm run test

6.3 用户端自动化

bash
cd frontend-user-v3-www
pnpm run build
pnpm run test

结构性重构或大改页面时追加:

bash
cd frontend-user-v3-www
pnpm run verify:refactor

7. 建议执行顺序

7.1 开发自测顺序

  1. 后端定向测试
  2. 前端对应端构建
  3. 本地联调冒烟
  4. 被改业务域人工回归

7.2 提测前顺序

  1. backend 全量测试
  2. frontend-admin-v3 构建
  3. frontend-user-v3-www 构建
  4. frontend-user-v4-console 构建
  5. 用户端/管理端关键路径联调
  6. 提交测试记录

7.3 发布前顺序

  1. 空库安装链路验证
  2. 后端全量测试
  3. 双前端构建
  4. 全链路人工回归
  5. 调度与异步行为验证
  6. 发布验收单签字

8. 全量测试范围

8.1 安装与基础可用性

  • 空库执行 backend/scripts/install_db.py --reset 成功
  • mysql-schema.sql 可被正确加载
  • 默认管理员可登录
  • 后端 app:serve 可启动
  • 用户端、管理端 pnpm run build 成功
  • 站点、用户中心、管理后台首页均可访问

8.2 认证与权限

  • 管理员登录、退出、Token 有效期、空闲超时
  • 用户登录、注册、找回密码、资料更新
  • 管理端 login as 跳转与交换码
  • 权限码控制是否准确
  • 禁用账号不可访问
  • 未登录、越权、过期 Token 返回码符合 API格式规范.md

8.3 站点与公开产品

  • 首页配置读取正常
  • 公告/帮助列表与详情可访问
  • 商品分类、列表、详情、报价正常
  • 商品卡月付价格、规格、文案、库存展示正确

8.4 管理端商品与目录

  • 商品分类树、筛选、分页、排序正常
  • 商品详情加载无缺字段错误
  • 商品拖拽排序可保存
  • 批量移动商品正常
  • 商品拆分、规格目录、CPU 型号目录可读可写
  • 供应商商品批量关联可用

8.5 用户下单与账单

  • 商品报价成功
  • 下单创建成功
  • 数量、配置快照、指纹与 token 正确
  • 余额支付、零元支付、待支付状态处理正确
  • 账单生成、账单明细、账单状态流转正常
  • 支付记录与账单投影同步正确

8.6 支付与充值

  • 支付会话生成成功
  • 支付宝预下单失败时提示符合预期
  • 异步回调验签逻辑正常
  • 充值状态查询可正确更新余额与流水
  • 回调幂等性验证通过

8.7 服务生命周期

  • 下单后服务创建或待开通状态正确
  • 自动续费开关生效
  • 到期提醒、续费窗口、取消逻辑正确
  • 流量包购买生成正确账单
  • 服务删除保留账务记录

8.8 服务控制台

  • 服务详情、状态、规格、供应商绑定正常
  • VNC token 安全策略正确
  • 重装、开关机、重置密码等操作权限正确
  • NAT、监控、安全组、黑洞工具页读取与操作正常
  • 缓存命中与强刷行为符合预期

8.9 用户与实名

  • 用户创建、更新、手机号唯一性校验正确
  • 资料页更新成功
  • 实名状态查询、解绑、认证历史展示正常
  • 缺失旧表时兼容逻辑仍可运行

8.10 优惠券、返佣、会员

  • 优惠券创建、更新、发放、领取、使用、回退正常
  • 券分页和汇总统计正确
  • 推荐关系建立、返佣发放、释放、回退正确
  • 提现、返佣日志、账户日志展示正确
  • 会员等级配置和关联逻辑正常

8.11 工单与内容

  • 工单创建、回复、指派、关闭正常
  • 图片上传、路径安全校验正确
  • 公告/帮助分类和文章管理可读可写
  • 内容发布缓存版本更新正常

8.12 设置、日志与通知

  • settings 表读写正常
  • 操作日志、系统日志、短信日志、邮件日志查询正常
  • 短信日志脱敏正确
  • 邮件/通知日志降级写入正常

8.13 调度与异步

  • 调度任务概览接口正常
  • 可手动触发的任务能执行
  • 队列积压清理行为符合当前架构
  • 认证刷新、对账、账单补偿、自动化任务执行路径正常

8.14 数据库工程与兼容性

  • 基础 schema 导入成功
  • 当前迁移可在 schema 基线上执行到最新
  • 核心索引存在
  • 工程命令 dry-run 输出可读
  • 旧表缺失下兼容逻辑不报错

9. 后端测试清单

9.1 必跑

bash
cd backend
php artisan test

9.2 高风险改动追加定向测试

  • 登录/鉴权:AuthLoginRegressionTestSanctumIdleTimeoutTest
  • 商品/站点:AdminCatalogRegressionTestSiteProductReadServiceTestSiteHomeControllerTest
  • 下单/支付/账单:OrderQuantityCheckoutFlowTestOrderZeroAmountPaymentFlowTestRechargeStatusBalanceRegressionTestPaymentInvoiceProjectionSyncTest
  • 服务控制台/VNC:ServiceVncTokenSecurityTestServiceConsoleSupplierBindingTest
  • 优惠券/返佣:CouponLifecycleRegressionTestReferralRewardLifecycleRegressionTest
  • 工单/上传:TicketServiceRegressionTestUploadSecurityTestZjmfFinanceTransportTest
  • 调度:ScheduleTaskExecutionCoverageTestScheduleTaskOverviewTest
  • 安装/数据库:DatabaseEngineeringCommandTestDatabaseIndexOptimizationRegressionTest

上传安全与上游传递的定向验证:

bash
cd backend
php artisan test --filter=UploadSecurityTest
php artisan test --filter=ZjmfFinanceTransportTest
php artisan test --filter=ServiceProvisionDataTokenSanitizationTest
  • UploadSecurityTest 覆盖 /upload_image 默认关闭、凭证/白名单/限流与孤儿文件清理。测试缓存为 arrayphpunit.xml.dist),限流计数不落 Redis;用例 tearDown 会清理固定测试 IP 的 RateLimiter 键,重复运行保持幂等。
  • V2AdminTicketActionApiTest 覆盖上传防护配置读写、/upload_image 开启前置校验、白名单外上传默认拒绝及规则创建/更新保护。
  • ZjmfFinanceTransportTest 覆盖附件上传:复用共享 TLS 选项(ssl_verify/ca_bundle)、路径逃逸拒绝、上游失败抛业务异常。
  • ServiceProvisionDataTokenSanitizationTest 覆盖回调 token 不进入 services.provision_data、仅保留在加密 secret 快照。

9.3 空库初始化链路验证

bash
python backend/scripts/install_db.py --reset

验证项:

  • 数据库表数量恢复
  • admin_users 中存在 cerbo
  • POST /api/v2/admin/login 返回 code = 0

9.4 后端基线记录原则

测试数量随功能和回归用例持续变化,不在本文维护固定 passed/skipped/assertions 数字。每次发布或大改后应在当前任务、PR 或发布记录中记录:

  • 分支与提交哈希。
  • php artisan test 结果。
  • 静态分析 / 格式检查结果。
  • 跳过用例和原因。
  • 本次新增失败是否与改动相关。

10. 前端测试清单

10.1 管理端

必跑:

bash
cd frontend-admin-v3
pnpm run build
pnpm run test

人工重点:

  • 登录页
  • 首页仪表盘
  • 商品中心
  • 用户详情
  • 工单页
  • 设置页
  • 日志页

10.2 用户端与官网

必跑:

bash
cd frontend-user-v3-www
pnpm run build
pnpm run test

结构性改动追加:

bash
cd frontend-user-v3-www
pnpm run verify:refactor

人工重点:

  • 首页
  • 商品列表 / 详情
  • 登录 / 注册 / 找回密码
  • 用户中心首页
  • 账单 / 订单 / 服务 / 工单 / 返佣 / 充值
  • 黑洞工具页
  • 服务控制台页面

11. 联调测试清单

11.1 基础联调

  • 前端请求地址均走 127.0.0.1
  • 双端登录后 token 存储正确
  • 管理端和用户端 API 均返回统一 JSON 外层
  • 401 / 403 / 422 / 500 的错误提示可读

11.2 跨端链路

  • 管理端新增商品后,站点可见
  • 管理端修改首页配置后,官网可见
  • 管理端切换用户 login as 到用户端成功
  • 用户下单后,管理端账单/服务/日志可见
  • 用户提交工单后,管理端可处理

11.3 调度联动

  • 下单支付后的后续动作在当前调度模型下可被消费
  • 调度任务手动触发结果可在前端看到状态变化

12. 人工测试用例设计方法

每个业务域至少覆盖以下维度:

  • 正常路径
  • 参数缺失
  • 非法状态流转
  • 权限不足
  • 空数据
  • 大数据分页
  • 并发或重复提交
  • 异步延迟
  • 第三方失败
  • 历史兼容路径

示例:

  • 登录:正确密码、错误密码、禁用账号、过期 token、空闲超时
  • 下单:正常购买、零元购买、余额不足、未实名限制、未绑手机限制
  • 优惠券:有效券、过期券、私有券、公有券、重复使用、取消支付回退
  • 服务控制台:可管理、不可管理、供应商缺失、缓存命中、强制刷新、上游报错脱敏

13. 缺陷分级标准

  • P0
    • 无法启动
    • 无法登录
    • 下单/支付/开通主链路中断
    • 数据错账、权限泄漏、安全问题
  • P1
    • 主要功能不可用
    • 关键页面空白或报错
    • 高概率触发的错误提示或状态错误
  • P2
    • 次要流程异常
    • 特定条件下展示错误
    • 构建告警、兼容性问题
  • P3
    • 文案、样式、轻微交互问题
    • 不影响主流程的边角问题

14. 测试记录要求

每轮测试至少输出以下内容:

  • 测试时间
  • 测试人
  • 分支 / 提交哈希
  • 环境信息
  • 数据库基线来源
  • 已执行命令
  • 已覆盖模块
  • 缺陷列表
  • 未覆盖项与原因
  • 最终结论:通过 / 有条件通过 / 不通过

15. 发布前验收清单

  • 后端 php artisan test 通过
  • frontend-admin-v3 构建通过
  • frontend-user-v3-www 构建通过
  • frontend-user-v4-console 构建通过
  • 若涉及重构,相关前端的 verify:refactor 通过
  • 全新安装脚本验证通过
  • 默认管理员登录验证通过
  • 至少一条用户下单链路验证通过
  • 至少一条工单链路验证通过
  • 至少一条调度任务手动触发验证通过
  • 发布配置与 .env 检查完成
  • 风险项已记录并确认责任人

16. 当前已知限制

  • frontend-admin-v3 当前没有完整单元测试体系,主要依赖构建和少量脚本验证。
  • frontend-user-v3-wwwfrontend-user-v4-console 自动化测试覆盖仍偏轻,更多依赖构建、脚本和人工联调。
  • 第三方真实能力如短信、邮件、支付宝、上游服务商接口,若无隔离测试环境,只能验证本地降级与模拟行为。
  • 调度与异步链路受当前 schedule:run 模式影响,验证时需考虑 0 到 60 秒延迟窗口。

17. 推荐执行模板

17.1 提测前快速版

bash
cd backend
php artisan test
composer analyse
composer format:check

cd ../frontend-admin-v3
pnpm run build
pnpm run test

cd ../frontend-user-v3-www
pnpm run build
pnpm run test

记录模板:

  • 提交哈希:
  • 测试环境:
  • 数据库基线:
  • 后端结果:
  • 管理端构建结果:
  • 用户端构建结果:
  • 人工冒烟范围:
  • 风险与备注:

17.2 发布前全量版

bash
# 1. 空库安装验证
python backend/scripts/install_db.py --reset

# 2. 后端全量
cd backend
php artisan test
composer analyse
composer format:check

# 3. 管理端
cd ../frontend-admin-v3
pnpm run build
pnpm run test

# 4. 官网与购买入口
cd ../frontend-user-v3-www
pnpm run build
pnpm run test
pnpm run verify:refactor

# 5. 用户控制台
cd ../frontend-user-v4-console
pnpm run build

人工补充检查建议:

  • 管理员登录、用户登录
  • 商品后台列表、详情、分类树
  • 站点首页、公开商品读取、报价
  • 下单、账单、余额支付、零元支付
  • 服务控制台详情、VNC、NAT、安全组
  • 工单、返佣、调度任务
  • 数据库工程命令与关键 Job 注入解析

基于 AGPL-3.0-or-later 发布