Skip to content

Latest commit

 

History

History
119 lines (81 loc) · 4.66 KB

File metadata and controls

119 lines (81 loc) · 4.66 KB

测试用例

目标

验证前后端围绕 JD 分析、简历上传、简历列表、流式评估、流式聊天、模拟面试智能体的完整链路是否正常。

前置条件

  • 已安装 OCR 依赖 rapidocr_onnxruntime
  • 已安装依赖并能启动后端 python server.py
  • 已启动前端 npm run devpnpm dev
  • 准备至少 1 份可解析的 .docx 简历

手动测试用例

1. JD 分析

  • 在页面输入一段 JD 描述
  • 点击 ANALYZE JD
  • 预期:页面出现关键词标签,后端 /analyze_jd 返回 keywords

1.1 JD 图片 OCR

  • 点击 JD 文本域右下角 图片识别文字
  • 上传一张包含 JD 内容的图片
  • 预期:后端通过 RapidOCR 调用 /ocr_jd_image 成功返回 text
  • 预期:识别结果自动追加到 JD 文本域中,不阻塞页面其他操作

2. 页面异步加载简历列表

  • 保证数据库中已有历史简历记录
  • 刷新页面
  • 预期:页面先正常渲染,不阻塞交互;随后候选人池异步出现已有简历

3. 上传简历

  • 点击上传按钮,选择 .docx.pdf 文件
  • 预期:候选人先以 上传中 状态进入列表,上传完成后变为 就绪/Ready
  • 预期:后端 /upload_resume 返回 resume_id

3.1 PDF 简历上传

  • 上传一份文本可提取的 .pdf 简历
  • 预期:后端正常解析 PDF 内容并进入评估流程
  • 预期:选择该候选人时可正常调用 /evaluate

4. 简历列表查询

  • 打开浏览器开发者工具或直接请求 GET /resumes?user_id=resume-agent-demo
  • 预期:返回 items 数组,包含 resume_idcandidate_namephonestatus

5. 简历评估

  • 先完成 JD 分析,再点击某个候选人标签
  • 预期:右侧进入评估中状态,随后显示分数、雷达图、总结、亮点、风险
  • 预期:雷达图维度固定为“技术深度、项目经验、软技能、背景示例、AI技能”
  • 预期:后端 /evaluate 返回 evaluation

5.1 流式评估与证据来源

  • 选择候选人后观察评估过程
  • 预期:前端按 preparing -> sources -> scoring -> radar -> summary -> highlights -> risks -> finalizing 逐步更新
  • 预期:后端 /evaluate_stream 返回 SSE 事件,包含 sourcessummary_source_idshighlights[].source_idsrisks[].source_ids
  • 预期:前端可展示总结、亮点、风险对应的证据片段

6. 聊天流式响应

  • 选择一份候选人后,在追问输入框输入问题
  • 预期:页面显示用户消息和 AI 消息,AI 回复逐步流式更新
  • 预期:后端 /chat 返回 SSE 事件,至少包含 chunksuggestionssourcesdone

6.1 追问建议回填

  • 完成一次聊天后,观察追问建议区
  • 预期:建议列表更新为后端返回的追问项
  • 点击任一建议
  • 预期:前端直接再次调用 /chat,并开始新的追问流式回复

7. 删除简历

  • 点击候选人右侧删除按钮并确认
  • 预期:前端候选人池移除该条记录
  • 预期:刷新页面后该简历不再出现

7.1 模拟面试智能体

  • 在评估完成后点击 开始模拟面试
  • 预期:弹窗正常打开,并可填写/确认 interview_identity
  • 预期:后端 /interview/start_stream 返回 SSE,包含 phasesessionquestiondone
  • 预期:能流式得到 10 道题,且分类覆盖技术深挖、ownership、问题解决、沟通协作、风险确认
  • 预期:每题可填写文本答案,浏览器支持时可通过语音输入追加内容
  • 完成 10 题后点击提交
  • 预期:后端 /interview/submit 返回总分、逐题反馈、通过/待定/不通过
  • 再次打开弹窗
  • 预期:可通过 /interview/history/interview/history/{session_id} 查看历史记录与详情

8. 异常文件类型

  • 上传 .pdf.doc
  • 上传 .doc
  • 预期:前端/后端拒绝,提示仅支持 .docx.pdf

9. 未输入 JD 直接评估

  • 上传简历后,不输入 JD,直接点击候选人
  • 预期:页面提示需要先分析 JD,不触发有效评估

10. 无候选人时追问

  • 在未选择简历的情况下尝试提问
  • 预期:按钮禁用或不发送请求

可选自动化测试建议

如果后续决定补自动化,可以优先做下面几类:

  • FastAPI 接口测试:覆盖 /analyze_jd/upload_resume/resumes/evaluate/evaluate_stream/chat/interview/start_stream/interview/submit
  • 前端 store 测试:覆盖 hydrateResumesuploadResumeFileselectResumesendFollowUpQuestionloadInterviewQuestionssubmitInterview
  • E2E 测试:覆盖页面初始化、上传、评估、聊天、模拟面试、删除完整流程