Add web QA evidence and profile form hints
This commit is contained in:
@@ -154,10 +154,10 @@ export default function ProfilePage() {
|
||||
|
||||
<Form form={form} layout="vertical" onFinish={handleSubmit}>
|
||||
<Form.Item label="显示名称" name="display_name" rules={[{ required: true, message: "请输入显示名称" }]}>
|
||||
<Input placeholder="例如:法务负责人" />
|
||||
<Input id="display_name" name="display_name" autoComplete="nickname" placeholder="例如:法务负责人" />
|
||||
</Form.Item>
|
||||
<Form.Item label="新密码" name="password" rules={[{ min: 6, message: "密码至少 6 位" }]}>
|
||||
<Input.Password placeholder="留空则保持原密码" />
|
||||
<Input.Password id="new_password" name="new_password" autoComplete="new-password" placeholder="留空则保持原密码" />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label="确认新密码"
|
||||
@@ -177,7 +177,7 @@ export default function ProfilePage() {
|
||||
}),
|
||||
]}
|
||||
>
|
||||
<Input.Password placeholder="请再次输入新密码" />
|
||||
<Input.Password id="confirm_password" name="confirm_password" autoComplete="new-password" placeholder="请再次输入新密码" />
|
||||
</Form.Item>
|
||||
<Button type="primary" htmlType="submit" loading={submitting}>
|
||||
保存设置
|
||||
|
||||
@@ -0,0 +1,274 @@
|
||||
# Web 深度测试 BUG 报告 - 2026-05-27
|
||||
|
||||
## 测试范围
|
||||
|
||||
- URL: `http://192.168.3.90:3003/login`
|
||||
- 登录账号: `cyuqei@gmail.com`
|
||||
- 测试日期: 2026-05-27
|
||||
- 浏览器工具: gstack browse headless Chromium
|
||||
- 账号角色: 普通成员 `member`
|
||||
|
||||
## 旧 BUG 文档检查
|
||||
|
||||
本轮先在仓库内搜索了旧 BUG / QA 文档:
|
||||
|
||||
- 搜索范围排除了 `.git`、`build`、`mobile/build`、`.dart_tool`、`node_modules`、`build_cache` 等缓存目录。
|
||||
- 未找到以前专门生成的 Markdown BUG 文档。
|
||||
- 仅找到历史 smoke/QA artifacts,例如:
|
||||
- `qa-artifacts/real-device-product-smoke-suite/...`
|
||||
- `qa-artifacts/real-device-smoke/...`
|
||||
- `qa-artifacts/gradle-debug-error.log`
|
||||
- `qa-artifacts/gradle-debug-output.log`
|
||||
|
||||
因此没有可逐条复测的旧 BUG 文档。本报告记录本轮新发现。
|
||||
|
||||
## 已验证正常的主路径
|
||||
|
||||
### 1. 登录与会话
|
||||
|
||||
结果:通过。
|
||||
|
||||
证据:
|
||||
|
||||
- `POST /api/v1/auth/login` 返回 200。
|
||||
- 登录后跳转到 `/` 首页工作台。
|
||||
- 首页加载审查记录与导航入口,无当前 console error。
|
||||
- 角色显示为普通成员,顶部显示当前用户。
|
||||
|
||||
### 2. 合同生成页面加载
|
||||
|
||||
结果:基本通过。
|
||||
|
||||
证据:
|
||||
|
||||
- `/contracts` 页面可打开。
|
||||
- 模板列表、历史生成列表、筛选控件、分页控件均可见。
|
||||
- `GET /api/v1/contracts/templates...`、历史列表相关请求返回成功。
|
||||
|
||||
### 3. 合同生成预览
|
||||
|
||||
结果:通过,但有一个错误提示质量问题,见 BUG-001。
|
||||
|
||||
证据:
|
||||
|
||||
- 选择 `物业服务合同模板` 后,填写必填字段:甲方、乙方、项目、物业坐落、服务范围、服务期限、费用标准等。
|
||||
- 点击 `预览合同` 后,`POST /api/v1/contracts/preview` 返回 200。
|
||||
- 页面展示完整预览内容和变量填写情况。
|
||||
|
||||
### 4. 审查记录与审查详情
|
||||
|
||||
结果:主路径通过。
|
||||
|
||||
证据:
|
||||
|
||||
- `/reviews` 页面可打开,显示多条审查记录。
|
||||
- 最新生成记录 `物业服务合同模板_20260527_054731.docx` 已进入审查记录。
|
||||
- 打开详情页 `/reviews/review-8dd7fa0e8071` 后,刷新可显示:
|
||||
- 任务状态:已完成
|
||||
- 报告状态:可下载
|
||||
- 总体等级:中风险
|
||||
- 风险项、解析证据、Workflow Trace、AI Run Evidence、条款摘要
|
||||
|
||||
### 5. 文书起草入口和表单校验
|
||||
|
||||
结果:通过。
|
||||
|
||||
证据:
|
||||
|
||||
- `/documents/new` 页面可打开。
|
||||
- 文书类型列表可筛选 `物业服务`。
|
||||
- 进入 `/documents/new/property_service` 后,动态要素 schema 正常加载。
|
||||
- 空表单提交时前端拦截并提示必填项,不发起错误生成请求。
|
||||
|
||||
### 6. 个人设置页
|
||||
|
||||
结果:通过。
|
||||
|
||||
证据:
|
||||
|
||||
- `/profile` 页面可打开。
|
||||
- 账号、角色、状态、显示名称、新密码、确认密码、保存设置入口可见。
|
||||
- `GET /api/v1/auth/me` 与 `GET /api/v1/system/shared-ai` 返回 200。
|
||||
|
||||
## 新发现问题
|
||||
|
||||
### BUG-001 合同生成预览空表单时提示过于笼统,并产生 console error
|
||||
|
||||
严重级别:P2
|
||||
|
||||
页面:`/contracts`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 登录系统。
|
||||
2. 进入 `合同生成`。
|
||||
3. 选择 `物业服务合同模板`。
|
||||
4. 不填写任何必填字段。
|
||||
5. 点击 `预览合同`。
|
||||
|
||||
实际结果:
|
||||
|
||||
- 页面底部/消息区域显示:`合同预览失败,请稍后重试`。
|
||||
- 浏览器 console 出现:`Failed to load resource: the server responded with a status of 400 (Bad Request)`。
|
||||
- 网络请求:`POST /api/v1/contracts/preview → 400 (71B)`。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 应在前端直接校验必填字段,提示类似:`请先填写甲方名称、乙方名称、项目/物业名称...`。
|
||||
- 不应把用户未填必填项归类成“稍后重试”的系统失败。
|
||||
- 最好不要产生可见 console error。
|
||||
|
||||
影响:
|
||||
|
||||
- 用户会误以为系统故障,而不是表单未填写完整。
|
||||
- 与 `/documents/new/property_service` 的体验不一致,文书起草页能明确提示必填字段。
|
||||
|
||||
建议修复:
|
||||
|
||||
- 合同生成页在调用 `/contracts/preview` 前增加和文书起草页一致的必填字段校验。
|
||||
- API 400 返回时解析后端错误详情,映射到字段级或列表级提示。
|
||||
|
||||
---
|
||||
|
||||
### BUG-002 审查详情页首次从列表点击打开时曾出现空白正文,刷新后才显示
|
||||
|
||||
严重级别:P1/P2,需要二次确认稳定复现
|
||||
|
||||
页面:`/reviews` -> `/reviews/review-8dd7fa0e8071`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 打开 `/reviews`。
|
||||
2. 点击最新记录 `物业服务合同模板_20260527_054731.docx` 的 `查看详情`。
|
||||
3. 观察详情页首屏。
|
||||
|
||||
实际结果:
|
||||
|
||||
- URL 已变为 `/reviews/review-8dd7fa0e8071`。
|
||||
- 首次进入时页面正文只显示顶部导航和退出按钮,未显示审查详情内容。
|
||||
- 同时网络请求实际已经成功:
|
||||
- `GET /api/v1/reviews/review-8dd7fa0e8071 → 200`
|
||||
- `GET /api/v1/reviews/review-8dd7fa0e8071/result → 200`
|
||||
- `GET /api/v1/reviews/review-8dd7fa0e8071/report → 200`
|
||||
- `GET /api/v1/reviews/review-8dd7fa0e8071/risk-actions → 200`
|
||||
- 执行浏览器 reload 后,详情内容正常显示。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 从列表点击进入详情页后,应首次渲染完整审查详情,不需要手动刷新。
|
||||
|
||||
影响:
|
||||
|
||||
- 用户会看到“空页面”,误判审查详情丢失或加载失败。
|
||||
- 该问题影响核心审查详情链路。
|
||||
|
||||
备注:
|
||||
|
||||
- 刷新后可正常显示,说明后端数据和接口不是根因。
|
||||
- 更像前端路由切换、Suspense/loading 状态、客户端状态更新或首次渲染条件判断问题。
|
||||
|
||||
建议修复:
|
||||
|
||||
- 检查审查详情页面客户端组件在 Next.js 路由跳转后的加载状态处理。
|
||||
- 当详情/result/report/risk-actions 请求完成后,确保 state 触发内容渲染。
|
||||
- 增加从 `/reviews` 客户端跳转到详情页的 E2E 回归测试。
|
||||
|
||||
---
|
||||
|
||||
### BUG-003 法律问答回答内容仍是英文检索包装语,不满足中文法律问答体验
|
||||
|
||||
严重级别:P1
|
||||
|
||||
页面:`/chat`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 打开 `/chat`。
|
||||
2. 新会话或现有会话中输入:`请用中文简要说明物业服务合同中付款条款需要关注哪些风险?`
|
||||
3. 点击 `发送问题`。
|
||||
4. 等待 `POST /api/v1/chat/stream` 返回 200。
|
||||
5. 刷新页面查看会话结果。
|
||||
|
||||
实际结果:
|
||||
|
||||
- 会话完成,但 AI 回答正文是英文检索包装语:
|
||||
- `I found relevant knowledge-base content for this question:`
|
||||
- `Please treat this as AI-assisted guidance and review the cited source text.`
|
||||
- 没有直接用中文回答“付款条款需要关注哪些风险”。
|
||||
- 当前回答摘要还混入上一轮问题的摘要,连续会话可读性差。
|
||||
- 来源引用存在,且能检索到 `第二十四章 物业服务合同`,但回答生成层没有转成用户需要的中文法律建议。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 应以中文直接回答用户问题,例如列出付款节点、计费口径、验收/开票前置、逾期责任、调价机制、公共收益/维修资金边界等风险点。
|
||||
- 引用来源应作为辅助证据展示,不应替代正文回答。
|
||||
- 当前回答摘要应只总结当前轮次,不应混入历史轮次。
|
||||
|
||||
影响:
|
||||
|
||||
- 法律问答核心价值明显下降。
|
||||
- 用户提出中文问题却收到英文系统式检索说明,会认为 AI 问答不可用。
|
||||
|
||||
建议修复:
|
||||
|
||||
- 检查 shared-ai-platform 返回内容与本系统 chat adapter 的提示词/输出解析。
|
||||
- 如果上游只返回 retrieval summary,应在本系统侧增加 answer synthesis,基于检索结果生成中文答案。
|
||||
- 当前回答摘要应按 message id 或最新 assistant response 隔离,不要拼接历史 assistant 内容。
|
||||
|
||||
---
|
||||
|
||||
### BUG-004 合同生成确认生成请求长时间 pending,前端未给出超时/失败恢复
|
||||
|
||||
严重级别:P1/P2,需要继续确认后端是否仍在处理
|
||||
|
||||
页面:`/contracts`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 进入 `/contracts`。
|
||||
2. 选择 `物业服务合同模板`。
|
||||
3. 填写全部必填变量。
|
||||
4. 点击 `预览合同`,预览成功。
|
||||
5. 点击 `确认生成合同`。
|
||||
|
||||
实际结果:
|
||||
|
||||
- `POST /api/v1/contracts/generate` 长时间显示 pending。
|
||||
- 页面按钮进入 `loading 确认生成合同` 状态。
|
||||
- 后续切换页面后,审查记录中出现 `物业服务合同模板_20260527_054731.docx`,说明后端可能最终成功或异步链路已创建记录。
|
||||
- 但前端当前生成页没有明确成功、失败、超时或可恢复提示。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 生成成功后应明确进入结果页或给出成功状态。
|
||||
- 若生成超过阈值,应显示“仍在生成,可稍后在历史结果查看”,并允许用户恢复操作。
|
||||
- 不应让按钮长时间停留 loading,用户无法判断是否重复提交或离开页面。
|
||||
|
||||
影响:
|
||||
|
||||
- 合同生成核心路径存在不确定体验。
|
||||
- 用户可能重复点击、刷新或误以为生成失败。
|
||||
|
||||
建议修复:
|
||||
|
||||
- 为生成请求增加客户端超时和状态轮询/恢复。
|
||||
- 若后端支持异步生成,应返回任务 id 并在 UI 显示生成进度。
|
||||
- 生成完成后自动刷新历史列表或跳转结果页。
|
||||
|
||||
## 其他观察
|
||||
|
||||
- `/contracts` 页面历史列表中的 `下载` 按钮在 snapshot 中显示 disabled,但文本层仍显示“下载”。需要确认是否因为文件未准备好、权限不足,还是可访问性状态与视觉状态不一致。本轮未作为正式 BUG 记录。
|
||||
- `/chat` 历史会话列表较长,当前会话默认选中历史问题;点击“新会话”后实际问题仍发到旧会话 `conv-404c6a374e22`,需要进一步确认是否因为点击后 refs 未刷新或新会话 UX 设计如此。本轮未单独定级。
|
||||
|
||||
## 建议优先级
|
||||
|
||||
1. 优先修复 BUG-003:法律问答中文回答质量,这是用户可感知的核心 AI 功能问题。
|
||||
2. 修复 BUG-002:详情页首次空白会阻断审查详情链路。
|
||||
3. 修复 BUG-004:合同生成 pending 缺少恢复提示,影响核心生成链路信任。
|
||||
4. 修复 BUG-001:补齐合同生成前端字段校验和错误文案。
|
||||
|
||||
## 本轮证据文件
|
||||
|
||||
- 登录首屏截图:`mobile/qa-artifacts/web-deep-test-login-initial.png`
|
||||
- 合同生成页截图:`mobile/qa-artifacts/web-contracts-page-viewport.png`
|
||||
- 本报告:`qa-artifacts/web-deep-test-2026-05-27/BUG_REPORT.md`
|
||||
@@ -0,0 +1,366 @@
|
||||
# Web 全站细致 QA 测试报告 - 2026-05-27
|
||||
|
||||
## 测试范围
|
||||
|
||||
- 测试地址:`http://192.168.3.90:3003/login`
|
||||
- 账号:`cyuqei@gmail.com`
|
||||
- 角色:普通成员 `member`
|
||||
- 测试工具:gstack browse / headless Chromium
|
||||
- 报告路径:`qa-artifacts/web-full-qa-2026-05-27/FULL_QA_REPORT.md`
|
||||
- 截图目录:`qa-artifacts/web-full-qa-2026-05-27/`
|
||||
|
||||
## 覆盖页面
|
||||
|
||||
已逐页打开并检查文本、交互快照、console errors、network 请求:
|
||||
|
||||
- `/login`
|
||||
- `/`
|
||||
- `/review`
|
||||
- `/reviews`
|
||||
- `/reviews/review-8dd7fa0e8071`
|
||||
- `/contracts`
|
||||
- `/chat`
|
||||
- `/documents/new`
|
||||
- `/documents/new/property_service`
|
||||
- `/profile`
|
||||
- `/pricing`
|
||||
- `/demo-request`
|
||||
|
||||
主页面截图已保存到同目录,包括:
|
||||
|
||||
- `home.png`
|
||||
- `_review.png`
|
||||
- `_reviews.png`
|
||||
- `_contracts.png`
|
||||
- `_chat.png`
|
||||
- `_documents_new.png`
|
||||
- `_profile.png`
|
||||
- `_pricing.png`
|
||||
- `_demo-request.png`
|
||||
|
||||
## 总体结论
|
||||
|
||||
系统主导航和多数页面可访问,登录态稳定,列表页、筛选、文书起草入口、合同预览成功路径、审查详情刷新后展示、个人设置更新等路径可用。
|
||||
|
||||
但本轮仍发现若干核心问题,尤其是:
|
||||
|
||||
1. `/review` 文本审查提交会卡在 loading,且无网络请求,阻断新审查主链路。
|
||||
2. `/reviews -> /reviews/[id]` 从列表点击详情仍会首屏空白,刷新后才显示。
|
||||
3. `/chat` “新会话”没有真正创建新会话,问题仍追加到历史会话,并继续返回英文检索包装语。
|
||||
4. `/contracts` 空表单预览仍打后端 400 并提示“稍后重试”,说明线上未包含本地修复。
|
||||
|
||||
## 已验证正常路径
|
||||
|
||||
### 登录页 `/login`
|
||||
|
||||
通过项:
|
||||
|
||||
- 登录页加载 200。
|
||||
- 登录表单存在:账号、密码、登录按钮。
|
||||
- 使用 `cyuqei@gmail.com / <redacted-password>` 登录成功。
|
||||
- 登录后跳转到 `/`。
|
||||
- 登录后顶部导航显示:首页、文书起草、合同生成、审查记录、法律问答、个人设置、退出。
|
||||
- console 无错误。
|
||||
|
||||
### 首页 `/`
|
||||
|
||||
通过项:
|
||||
|
||||
- 首页工作台加载正常。
|
||||
- 审查概览、风险统计、最近任务、核心入口均可见。
|
||||
- 顶部导航链接存在。
|
||||
- 首页快捷入口存在:立即发起审查、进入合同生成、进入最近详情、发起合同审查、查看审查记录、合同生成中心。
|
||||
- 最近审查卡片可见。
|
||||
- console 无错误。
|
||||
|
||||
### 审查记录 `/reviews`
|
||||
|
||||
通过项:
|
||||
|
||||
- 审查记录页面加载正常。
|
||||
- 列表显示 9 条任务,已完成 9 条。
|
||||
- 关键词搜索 `物业服务` 后列表变为 7 / 9,筛选状态可见。
|
||||
- 重置按钮在筛选后可用。
|
||||
- 每条记录展示:文件名、合同类型、审查视角、状态、风险等级、说明、查看详情、下载报告、继续处理。
|
||||
- console 无错误。
|
||||
|
||||
### 合同生成 `/contracts`
|
||||
|
||||
通过项:
|
||||
|
||||
- 页面加载正常。
|
||||
- 模板列表、分类筛选、行业筛选、模板分页、历史合同列表、历史筛选均可见。
|
||||
- 选择 `物业服务合同模板` 后进入变量填写区。
|
||||
- 填写全部必填字段后点击 `预览合同` 成功。
|
||||
- 预览内容正确替换中文变量。
|
||||
- 变量填写情况表可见。
|
||||
|
||||
### 文书起草 `/documents/new`
|
||||
|
||||
通过项:
|
||||
|
||||
- 文书类型入口加载正常。
|
||||
- 搜索 `物业服务` 后只显示 `物业服务合同`。
|
||||
- 点击 `开始起草` 能进入 `/documents/new/property_service`。
|
||||
|
||||
### 文书构建 `/documents/new/property_service`
|
||||
|
||||
通过项:
|
||||
|
||||
- 动态要素 schema 正常加载。
|
||||
- 空表单点击 `提交生成` 会在前端展示字段级必填提示。
|
||||
- 页面提示 `请先补齐必填要素,再生成正式合同`。
|
||||
- 没有错误网络请求。
|
||||
- console 无错误。
|
||||
|
||||
### 个人设置 `/profile`
|
||||
|
||||
通过项:
|
||||
|
||||
- 页面加载正常。
|
||||
- 账号、角色、状态、显示名称、新密码、确认密码、保存设置可见。
|
||||
- 修改显示名称为 `钰麒QA` 并保存成功。
|
||||
- `PUT /api/v1/auth/me` 返回 200。
|
||||
- 顶部显示名称同步为 `钰麒QA`。
|
||||
- console 无错误。
|
||||
|
||||
## 新发现 / 仍复现问题
|
||||
|
||||
### BUG-FULL-001 `/review` 文本提交卡死在 loading,且无提交网络请求
|
||||
|
||||
严重级别:P0/P1
|
||||
|
||||
页面:`/review`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 进入 `/review`。
|
||||
2. 在合同文本框填写:`QA测试合同文本:甲方委托乙方提供物业服务,服务费每月1000元,每月10日前支付,逾期每日万分之五违约金。争议提交项目所在地法院。`
|
||||
3. 点击 `提交审查`。
|
||||
4. 等待 network idle。
|
||||
|
||||
实际结果:
|
||||
|
||||
- 按钮变成 `loading 提交审查` 并一直 disabled。
|
||||
- 浏览器 network 显示没有新的提交请求。
|
||||
- 页面仍停留 `/review`。
|
||||
- 再次等待 network idle 后仍未恢复。
|
||||
- 没有 console error。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 应发起 `/api/v1/reviews` 或等价提交请求。
|
||||
- 成功后应跳转新 review detail。
|
||||
- 失败时应恢复按钮并展示错误原因。
|
||||
|
||||
影响:
|
||||
|
||||
- 新审查主链路被阻断,用户无法从文本发起审查。
|
||||
|
||||
建议:
|
||||
|
||||
- 检查提交按钮 loading 状态是否在表单校验前置分支中被置 true 后未恢复。
|
||||
- 检查合同类型未选择时是否进入了静默异常分支。
|
||||
- 需要保证任何校验失败、异常、早退都执行 `setSubmitting(false)`。
|
||||
|
||||
---
|
||||
|
||||
### BUG-FULL-002 `/reviews` 点击详情首次仍空白,刷新后才显示
|
||||
|
||||
严重级别:P1
|
||||
|
||||
页面:`/reviews` -> `/reviews/review-8dd7fa0e8071`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 进入 `/reviews`。
|
||||
2. 点击第一条记录的 `查看详情`。
|
||||
3. 等待 network idle。
|
||||
|
||||
实际结果:
|
||||
|
||||
- URL 变为 `/reviews/review-8dd7fa0e8071`。
|
||||
- 页面只显示顶部导航、用户名、退出按钮。
|
||||
- 正文没有审查详情。
|
||||
- network 已成功返回:
|
||||
- `GET /api/v1/reviews/review-8dd7fa0e8071 → 200`
|
||||
- `GET /api/v1/reviews/review-8dd7fa0e8071/result → 200`
|
||||
- `GET /api/v1/reviews/review-8dd7fa0e8071/report → 200`
|
||||
- `GET /api/v1/reviews/review-8dd7fa0e8071/risk-actions → 200`
|
||||
- 手动 reload 后详情完整显示。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 从列表点击进入详情时应直接显示完整内容,不需要刷新。
|
||||
|
||||
影响:
|
||||
|
||||
- 审查记录到详情的核心链路仍有首屏空白问题。
|
||||
|
||||
备注:
|
||||
|
||||
- 本地已做过代码修复,但当前测试环境 `192.168.3.90:3003` 明显仍在运行旧前端包或问题未完全修复。
|
||||
|
||||
---
|
||||
|
||||
### BUG-FULL-003 `/chat` 新会话按钮没有真正开启新会话
|
||||
|
||||
严重级别:P1
|
||||
|
||||
页面:`/chat`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 进入 `/chat`。
|
||||
2. 点击 `新会话`。
|
||||
3. 输入:`请用中文列出物业服务合同付款条款的三个风险点。`
|
||||
4. 点击 `发送问题`。
|
||||
5. 等待完成并刷新页面。
|
||||
|
||||
实际结果:
|
||||
|
||||
- 当前会话仍显示旧会话标题:`请提取这份合同的履约义务... · conv-404c6a374e22`。
|
||||
- 新问题被追加到旧会话 `conv-404c6a374e22`,历史消息数从 4 条变为 6 条。
|
||||
- `新会话` 没有生成新的 conversation。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 点击 `新会话` 后,下一次发送应不带旧 conversation_id。
|
||||
- 应创建新的 conversation,并在历史列表出现新标题。
|
||||
|
||||
影响:
|
||||
|
||||
- 用户无法按主题隔离法律问答。
|
||||
- 历史上下文混入会影响后续回答和摘要。
|
||||
|
||||
---
|
||||
|
||||
### BUG-FULL-004 `/chat` 中文法律问题仍返回英文检索包装语,摘要混入历史回答
|
||||
|
||||
严重级别:P1
|
||||
|
||||
页面:`/chat`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 进入 `/chat`。
|
||||
2. 输入中文问题:`请用中文列出物业服务合同付款条款的三个风险点。`
|
||||
3. 点击 `发送问题`。
|
||||
4. 等待返回并刷新。
|
||||
|
||||
实际结果:
|
||||
|
||||
- AI 回答仍是:`I found relevant knowledge-base content for this question:`。
|
||||
- 结尾仍是:`Please treat this as AI-assisted guidance and review the cited source text.`。
|
||||
- 没有列出中文风险点。
|
||||
- 当前回答摘要拼接了多轮历史英文检索包装语,不只展示最新回答。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 应用中文直接回答用户问题,例如列出费用标准、付款期限、逾期责任、调价/新增收费、维修资金边界等风险。
|
||||
- 当前回答摘要应只展示当前轮次或最新 assistant 消息。
|
||||
|
||||
影响:
|
||||
|
||||
- 法律问答核心功能质量不可接受。
|
||||
|
||||
备注:
|
||||
|
||||
- 本地已做过代码修复,但当前测试环境仍未包含修复或后端仍返回无法被前端处理的内容。
|
||||
|
||||
---
|
||||
|
||||
### BUG-FULL-005 `/contracts` 空表单预览仍直接请求后端并显示泛化错误
|
||||
|
||||
严重级别:P2
|
||||
|
||||
页面:`/contracts`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 进入 `/contracts`。
|
||||
2. 选择 `物业服务合同模板`。
|
||||
3. 不填写任何必填变量。
|
||||
4. 点击 `预览合同`。
|
||||
|
||||
实际结果:
|
||||
|
||||
- 页面显示:`合同预览失败,请稍后重试`。
|
||||
- console 出现 400:`Failed to load resource: the server responded with a status of 400 (Bad Request)`。
|
||||
- network:`POST /api/v1/contracts/preview → 400 (71B)`。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 应前端拦截并提示缺失必填字段。
|
||||
- 不应发起预览请求。
|
||||
- 不应把字段缺失说成系统失败。
|
||||
|
||||
备注:
|
||||
|
||||
- 这是上一轮已发现问题,本轮线上环境仍复现。
|
||||
|
||||
---
|
||||
|
||||
### BUG-FULL-006 `/profile` 密码字段选择器/可访问性不稳定,测试工具无法定位输入框
|
||||
|
||||
严重级别:P3
|
||||
|
||||
页面:`/profile`
|
||||
|
||||
复现步骤:
|
||||
|
||||
1. 进入 `/profile`。
|
||||
2. 尝试按 DOM id 填写 `input#new_password` 和 `input#confirm_password`。
|
||||
|
||||
实际结果:
|
||||
|
||||
- browse 返回:`Element not found or not interactable within timeout`。
|
||||
- 交互快照里显示为 `@e10 [textbox] "新密码"` 和 `@e11 [textbox] "确认新密码"`,但 id selector 不可用。
|
||||
- 显示名称 `input#display_name` 可填并保存成功。
|
||||
|
||||
预期结果:
|
||||
|
||||
- 密码输入框应有稳定的 id / name / autocomplete,方便测试和无障碍定位。
|
||||
|
||||
影响:
|
||||
|
||||
- 不阻断普通用户点击输入,但影响自动化、可访问性和表单稳定性。
|
||||
|
||||
## 其他观察
|
||||
|
||||
### 合同历史下载按钮可访问性状态疑似不一致
|
||||
|
||||
- `/contracts` 历史列表中多条 `下载` 在 snapshot 中显示 disabled。
|
||||
- 文本层仍展示下载按钮。
|
||||
- 未深挖是否是文件状态、权限、或 a11y 属性问题。
|
||||
|
||||
### 审查记录页会批量拉取多个 report
|
||||
|
||||
- 进入 `/reviews` 时,network 中出现多个 `GET /api/v1/reviews/{id}/report`。
|
||||
- 对 9 条记录批量请求 report,单次约 2.3s 左右。
|
||||
- 当前可接受但有性能隐患,列表量大时会变慢。
|
||||
|
||||
### 线上环境未包含本地修复
|
||||
|
||||
本轮测试的 `192.168.3.90:3003` 仍复现上一轮本地已修复的问题:
|
||||
|
||||
- 合同空表单预览 400。
|
||||
- 审查详情首次空白。
|
||||
- Chat 英文 retrieval wrapper 和摘要混历史。
|
||||
|
||||
建议部署最新前端后重新跑本报告中的 BUG-FULL-002/004/005。
|
||||
|
||||
## 建议修复优先级
|
||||
|
||||
1. P0/P1:修复 `/review` 文本提交卡死 loading。
|
||||
2. P1:部署并复测审查详情首次空白修复。
|
||||
3. P1:修复 `/chat` 新会话不生效。
|
||||
4. P1:修复 `/chat` 中文法律回答生成和摘要只取最新轮次。
|
||||
5. P2:部署并复测 `/contracts` 空表单预览前端校验。
|
||||
6. P3:补强 `/profile` 密码字段稳定 selector / name / autocomplete。
|
||||
|
||||
## 测试证据
|
||||
|
||||
- 主页面截图:`qa-artifacts/web-full-qa-2026-05-27/*.png`
|
||||
- 测试上传文件:`qa-artifacts/web-full-qa-2026-05-27/upload-contract.txt`
|
||||
- 本报告:`qa-artifacts/web-full-qa-2026-05-27/FULL_QA_REPORT.md`
|
||||
@@ -0,0 +1,5 @@
|
||||
这是用于网页登录 QA 的合同附件测试文件。
|
||||
甲方:QA测试甲方。
|
||||
乙方:QA测试乙方。
|
||||
付款:乙方完成服务后甲方于10日内付款。
|
||||
违约责任:逾期付款每日万分之五。
|
||||
Reference in New Issue
Block a user