# CMPP 平台登录后浏览器验收清单 - 验收环境:测试环境 `http://100.93.204.60:12026` - 客户端入口:`/#/client/login` - 运营端入口:`/#/admin/login` - 禁止范围:不得使用预生产;不得发送、补发或重投短信;不得充值、改余额、改通道账号或启停状态 - 建议浏览器:Edge 或 Chrome 无痕窗口,桌面视口优先使用 1440×900;移动端补测 390×844 ## 1. 证据要求 每个失败项至少记录:入口 URL、账号类型、操作步骤、实际结果、期望结果、时间、截图、控制台错误和失败请求。每个通过项至少保留一张能证明最终状态的截图。 验收前打开开发者工具: 1. 按 `F12`。 2. 在 Network 勾选 `Preserve log`,清空旧请求。 3. 在 Console 清空旧日志。 4. Network 筛选 `Fetch/XHR`,不要只看页面文字。 统一通过标准: - 页面不是空白页,没有 Vite/React 错误遮罩。 - Console 没有新的 error;warning 必须能解释且与本次操作无关。 - 业务接口不能出现未处理的 500、HTML 错误页或裸 `Internal server error`。 - API 请求路径必须是 `/api/client/**` 或 `/api/admin/**` 对应门户,状态码与页面结果一致。 - 刷新后状态与刷新前一致,不依赖只存在于页面内存的假数据。 ## 2. 客户端登录与会话 ### CL-AUTH-01 正常登录 1. 打开客户端登录页。 2. 输入客户端账号、密码和当前图形验证码。 3. 点击“登录”。 4. 确认进入客户端首页,而不是停留在登录页或白屏。 5. 在 Network 找到登录请求,确认返回 2xx;后续 `/api/client/**` 初始化请求返回 2xx。 通过标准:页面进入客户端工作台,企业名称和当前账号正确;Console 无 error。 ### CL-AUTH-02 刷新与深层链接 1. 在已登录状态按 `Ctrl+R`。 2. 直接在地址栏打开账户余额、短信应用、批量任务、短信详情、上行短信各一个深层路由。 3. 每个路由再刷新一次。 通过标准:刷新后仍保持登录;页面正常恢复数据;不先闪现其他企业数据;不错误跳回运营端或登录页。 ### CL-AUTH-03 会话隔离 1. 保持客户端已登录,新开标签访问 `/#/admin/...` 任一运营端深层地址。 2. 不输入运营端账号。 通过标准:客户端 Cookie 不能直接获得运营端权限,应进入运营端登录页或返回明确的未授权状态。 ## 3. 客户端租户边界(C2) ### CL-TENANT-01 请求不携带客户端租户头 1. 已登录客户端后,在 Network 打开任意 `/api/client/**` 请求。 2. 查看 Request Headers。 通过标准:请求中没有 `x-tenant-id`;页面仍能正常显示当前企业的数据。 ### CL-TENANT-02 localStorage 不参与授权 1. 在 Application → Local Storage 中记录现有内容。 2. 若存在历史 `tenantId` 字段,先截图,再删除该字段;没有则不新增。 3. 刷新当前客户端页面。 通过标准:当前企业仍由登录会话识别,页面不出现默认租户导致的 403,也不切换到其他企业。 ### CL-TENANT-03 资源归属抽查 1. 打开短信应用、签名、模板、账户余额和用户管理。 2. 核对企业名称、应用、签名和余额均属于当前账号企业。 通过标准:不出现其他企业名称、应用、手机号、签名或余额。 > 安全接口矩阵中的“伪造其他租户头返回 403”已由自动化和真实 API 记录覆盖,人工浏览器验收不要求修改请求后重放。 ## 4. 客户端核心页面 ### CL-PAGE-01 首页与账户余额 1. 打开客户端首页,检查所有金额数字。 2. 打开账户余额页。 3. 检查标题是否为图标+页面标题,顶部不应重复出现单独“账户”标题。 4. 检查金额字体、颜色和字重。 通过标准:金额使用普通大号黑色字体;首页金额与“今日发送”视觉一致;账户状态不显示“余额水位”。 ### CL-PAGE-02 短信应用 1. 打开短信应用列表和一个应用详情。 2. 对照运营端同一应用的 CMPP 连接状态。 通过标准:两端连接状态一致;页面没有 `Internal server error`。 ### CL-PAGE-03 接口对接 1. 打开接口对接页。 2. 依次查看配置、HTTP 凭据、Webhook、请求日志和投递日志。 通过标准:五个区域均能加载真实接口结果;空数据使用中文空态;不能显示裸 `Internal server error`。 ### CL-PAGE-04 签名与引流信息 1. 打开签名列表及详情。 2. 查看引流信息列表及详情。 通过标准:不显示“已提交资料”和“使用场景”;不显示笼统“是否审核”;只显示移动、联通、电信三网是否可用;运营端“部分通过”和“全部通过”在客户端均显示“报备通过”。 ### CL-PAGE-05 时间默认值 分别打开:批量任务、短信发送详情、上行短信。 通过标准:首次进入时开始/结束时间默认为近7天;刷新后仍按近7天发起请求;列表结果与筛选时间一致。 ### CL-PAGE-06 发送状态中文化 1. 打开短信发送详情。 2. 抽查成功、失败、处理中、未知等不同状态。 通过标准:页面不显示 `delivered`、`failed`、`submit_queued` 等英文内部状态;未知值使用明确中文兜底,不能误映射为成功。 ### CL-PAGE-07 顶部导航 通过标准:客户端右上角不存在“待审核任务”按钮。 ## 5. 运营端核心页面 ### AD-AUTH-01 正常登录、刷新和深层链接 使用运营端账号登录,重复客户端的正常登录、刷新和深层链接检查。 通过标准:运营端会话独立,刷新不丢失;客户端 Cookie 不能替代运营端会话。 ### AD-PAGE-01 签名质量通道搜索 1. 打开签名质量检测页面。 2. 在通道搜索输入一个已知通道名称或编号。 3. 清空条件后重复一次。 通过标准:列表请求携带通道条件,结果只保留匹配通道;清空后恢复全部;无匹配时显示正常空态。 ### AD-PAGE-02 通道签名活跃度热力图搜索 执行与签名质量页相同的通道搜索。 通过标准:热力图和关联统计同步更新,不只是前端隐藏标签;清空后恢复。 ### AD-PAGE-03 短信任务进度状态搜索 1. 打开短信任务进度页面。 2. 依次选择至少两个状态。 3. 清空状态。 通过标准:请求状态参数正确;表格与状态条件一致;清空后恢复全部。 ### AD-PAGE-04 系统日志日期区间 1. 打开系统日志页面。 2. 检查默认开始和结束时间。 3. 改为一个更短区间并查询。 通过标准:默认近7天;请求携带正确起止时间;修改区间后数据同步变化。 ## 6. 通用异常状态 ### COMMON-01 慢请求与 Loading 在 Network 将速度切换为 Slow 3G,刷新一个列表页。 通过标准:显示稳定 Loading,不闪白屏、不出现旧企业数据;完成后 Loading 消失。 ### COMMON-02 空结果 使用一个不可能匹配的关键字或安全的空时间区间查询。 通过标准:显示中文空态,不报错,不保留上一次列表冒充新结果。 ### COMMON-03 业务错误 在不改变业务数据的前提下触发一个前端可校验错误,例如缺少必填字段。 通过标准:显示中文、可理解的字段或业务提示;不显示裸 500 文案。 ### COMMON-04 移动端 使用开发者工具切换到 390×844,检查客户端首页、余额页、列表筛选和详情弹窗。 通过标准:无横向页面滚动;按钮、金额、标题不遮挡;弹窗可滚动且关闭按钮可见。 ## 7. 验收结果模板 | 编号 | 结果 | 截图 | Console | 失败请求/备注 | |---|---|---|---|---| | CL-AUTH-01 | 通过/失败 | 文件名 | 0 error / 摘要 | 状态码与接口 | | CL-TENANT-01 | 通过/失败 | 文件名 | 0 error / 摘要 | 是否存在 x-tenant-id | | CL-PAGE-01~07 | 通过/失败 | 文件名 | 0 error / 摘要 | 具体页面 | | AD-AUTH-01 | 通过/失败 | 文件名 | 0 error / 摘要 | 状态码与接口 | | AD-PAGE-01~04 | 通过/失败 | 文件名 | 0 error / 摘要 | 筛选条件与结果 | | COMMON-01~04 | 通过/失败 | 文件名 | 0 error / 摘要 | 状态与视口 | 所有项目通过后,浏览器验收才可以标记为关闭;仅登录页可见或接口返回 200 不算登录后验收完成。