Files
huangjingfen/docs/license-replacement-test-record.md
2026-04-29 17:09:08 +08:00

6.8 KiB
Raw Blame History

CRMEB 基础依赖合规替换测试记录

阶段 0基线

目标

固定合规替换前的依赖边界、测试能力和接口回归记录格式,避免后续阶段把既有授权或环境问题误判为新回归。

依赖清单

crmeb\basic\BaseAuth

  • pro_v3.5.1/config/app.php:读取 BaseAuth::AUTH_CRMEB 作为 auth_crmeb 配置。
  • pro_v3.5.1/app/services/out/OutAccountServices.php:外部账号 token 解析。
  • pro_v3.5.1/app/services/kefu/LoginServices.php:客服 token 解析,当前项目暂不使用,最后阶段处理。
  • pro_v3.5.1/crmeb/traits/SearchDaoTrait.php:通用 DAO 搜索条件构建。
  • pro_v3.5.1/app/dao/work/*Dao.php:企业微信相关 DAO 搜索,当前项目暂不使用,最后阶段处理。
  • pro_v3.5.1/app/dao/BaseDao.php:库存扣减和回滚,当前项目暂不使用相关链路,最后阶段处理。

crmeb\basic\BaseController

  • pro_v3.5.1/app/controller/out/OutAccount.php
  • pro_v3.5.1/app/controller/supplier/AuthController.php
  • pro_v3.5.1/app/controller/admin/AuthController.php
  • pro_v3.5.1/app/controller/api/v1/Common.php
  • pro_v3.5.1/app/controller/kefu/AuthController.php,当前项目暂不使用,最后阶段处理。
  • pro_v3.5.1/app/controller/kefu/Login.php,当前项目暂不使用,最后阶段处理。
  • pro_v3.5.1/app/controller/kefu/Common.php,当前项目暂不使用,最后阶段处理。

授权/版权接口

  • pro_v3.5.1/route/admin.phpcheck_authauth_applyauthcrmeb_*copyright
  • pro_v3.5.1/route/api.phpget_copyright
  • pro_v3.5.1/route/supplier.phpcopyright
  • pro_v3.5.1/app/controller/admin/Common.php:版权保存、版权读取、授权相关接口。
  • pro_v3.5.1/app/controller/api/v1/Common.php:版权读取。
  • pro_v3.5.1/app/controller/supplier/Common.php:版权读取。
  • pro_v3.5.1/app/controller/kefu/Common.php:版权读取,当前项目暂不使用,最后阶段处理。

当前测试能力

  • pro_v3.5.1/composer.json 没有 testlint 或静态分析脚本。
  • 项目根目录没有 phpunit.xmlphpunit.xml.dist
  • pro_v3.5.1/vendor/bin/phpunit 当前不存在,tests/hjf/* 中的 PHPUnit 用例无法直接通过项目依赖运行。
  • pro_v3.5.1/view/admin/package.json 有构建脚本,但没有测试或 lint 脚本。
  • 每个阶段必须记录自动化检查是否可执行;不可执行时记录原因,并用手工接口回归补足验收证据。

统一回归记录格式

阶段 接口/命令 方法 身份 关键参数 HTTP 状态 业务 status 关键字段 结果 备注
示例 /adminapi/jnotice GET admin token 200 200 data 待测 阶段执行时填写

核心 smoke 基线接口

阶段执行时至少记录以下接口的当前响应:

  • GET /adminapi/login/info
  • GET /adminapi/menusList
  • GET /adminapi/home/header
  • GET /adminapi/jnotice
  • GET /supplierapi/login/info
  • GET /supplierapi/jnotice

阶段提交规则

  • 每个阶段测试通过后单独提交。
  • 提交前确认改动只包含当前阶段范围。
  • 客服、企业微信 DAO、库存扣减/回滚均作为最后阶段内容,不夹带到前置阶段。

阶段 1外部账号 token 解析

自动化检查

命令 结果 备注
php -l app/services/auth/AccessTokenService.php 通过 PHP 提示 swoole_loader 已加载,不影响语法检查结果。
php -l app/services/out/OutAccountServices.php 通过 PHP 提示 swoole_loader 已加载,不影响语法检查结果。

手工回归记录

阶段 接口/命令 方法 身份 关键参数 HTTP 状态 业务 status 关键字段 结果 备注
1 外部账号获取 token POST out appidappsecret 待预发填写 待预发填写 tokenexp_time 待测 当前本地无外部账号凭证和完整运行环境。
1 外部账号刷新 token POST out access_token 待预发填写 待预发填写 access_tokenexp_time 待测 当前本地无外部账号凭证和完整运行环境。
1 外部账号受保护接口 GET/POST out access_token 待预发填写 待预发填写 业务数据 待测 当前本地无外部账号凭证和完整运行环境。
1 伪造/过期 token GET/POST out 非法 token 待预发填写 待预发填写 错误码 待测 当前本地无外部账号凭证和完整运行环境。

阶段结论

  • app/services/out/OutAccountServices.php 已移除 crmeb\basic\BaseAuth 依赖。
  • app/services/kefu/LoginServices.php 未修改,保留到最后阶段处理。
  • 外部账号手工接口回归需要在具备外部账号凭证的预发或生产验证窗口执行。

阶段 2通用搜索条件构建

自动化检查

命令 结果 备注
php -l app/services/dao/SearchConditionBuilder.php 通过 PHP 提示 swoole_loader 已加载,不影响语法检查结果。
php -l crmeb/traits/SearchDaoTrait.php 通过 PHP 提示 swoole_loader 已加载,不影响语法检查结果。
php -r '...SearchConditionBuilder smoke...' 通过 验证搜索器字段进入 withSearch,普通表字段进入 where非法字段和 timeKey 被过滤。

手工回归记录

阶段 接口/命令 方法 身份 关键参数 HTTP 状态 业务 status 关键字段 结果 备注
2 商品列表筛选 GET admin 关键词、分类、上下架、分页 待预发填写 待预发填写 listcount 待测 当前本地无完整接口运行环境。
2 订单列表筛选 GET admin 订单号、用户、状态、时间范围、分页 待预发填写 待预发填写 listcount 待测 当前本地无完整接口运行环境。
2 用户列表筛选 GET admin 手机号/昵称、等级/标签、状态、分页 待预发填写 待预发填写 listcount 待测 当前本地无完整接口运行环境。
2 非法字段请求 GET admin 非法 where 字段 待预发填写 待预发填写 无 500 待测 当前本地无完整接口运行环境。

阶段结论

  • crmeb/traits/SearchDaoTrait.php 已移除 crmeb\basic\BaseAuth 依赖。
  • 企业微信 app/dao/work/*Dao.php 未修改,保留到最后阶段处理。
  • 常用列表接口手工回归需要在具备后台 token 的预发或生产验证窗口执行。