上传需求文档(PDF / Word),平台自动解析 → 结构化需求 → 按测试点生成覆盖全面的测试用例 → 一键导出 Excel。
个人测试提效工具:把需求文档丢进去,几分钟内拿到结构化、可追溯、可直接执行的测试用例清单。
- 多格式解析:支持 PDF(
PyMuPDF)与 Word(python-docx),统一输出纯文本 - 智能分块:基于
langchain-text-splitters递归分块,保留语义边界 - 需求结构化:一次 LLM 调用归纳出「模块 → 功能点」清单,界面可勾选生成范围
- 测试点驱动生成:先列出覆盖正常 / 异常 / 边界的测试点,再逐点批量生成用例,不约束条数,尽量覆盖完全
- 多模型可切换:
- 🟢 智谱 GLM(默认,免费额度)—
glm-4-flash - 🔵 通义千问(DashScope)—
qwen-plus - 🟡 Mock 模式(离线演示,无需 API Key)
- 🟢 智谱 GLM(默认,免费额度)—
- 用例字段:用例编号 / 所属模块 / 用例名称 / 前置条件 / 测试步骤 / 预期结果 / 优先级(P0·P1·P2) / 用例类型 / 是否自动化
- 交互式编辑:生成后可在表格里直接增删改,再导出
- Excel 导出:
openpyxl生成,多步骤自动换行、自动编号TC001…
| 层 | 技术 |
|---|---|
| 解析 | PyMuPDF、python-docx |
| 分块 | langchain-text-splitters |
| 大模型 | 智谱 GLM / 通义千问(OpenAI 兼容模式) |
| 生成编排 | Python(并发生成,线程池加速) |
| 界面 | Streamlit |
| 导出 | openpyxl |
阶段一不做 FastAPI:核心能力封装在框架无关的
core/包,Streamlit 直接import调用,后续可平滑包一层 API 对外服务。
.
├── core/ # 框架无关的核心能力
│ ├── parse.py # PDF / Word 解析
│ ├── chunk.py # 递归分块
│ ├── llm.py # LLM 抽象层(智谱 / 通义 / Mock)
│ ├── structure.py # 需求结构化(模块/功能点)
│ ├── generate.py # 测试点列举 + 用例批量生成
│ ├── export.py # Excel 导出
│ └── retriever.py # 检索器接口(Chroma 预留,阶段一未启用)
├── ui/
│ └── app.py # Streamlit 交互界面
├── uploads/ # 上传的需求文档(已 gitignore,模板除外)
├── outputs/ # 导出的 Excel(已 gitignore)
├── docs/adr/ # 架构决策记录
├── build_template.py # 生成「需求规格说明书模板.docx」
├── test_smoke.py # 端到端冒烟脚本
├── requirements.txt
├── .env.example # 环境变量样例(复制为 .env 填 Key)
└── CONTEXT.md / PLAN.md # 需求术语表与实现计划
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt复制环境变量样例并填入你的 Key:
cp .env.example .env.env 内容(不要提交,已在 .gitignore):
LLM_PROVIDER=zhipu # zhipu | qwen | mock
ZHIPU_API_KEY=你的智谱Key # https://open.bigmodel.cn
ZHIPU_MODEL=glm-4-flash # 智谱模型名
DASHSCOPE_API_KEY=你的通义千问Key # https://dashscope.console.aliyun.com
DASHSCOPE_MODEL=qwen-plus # 通义模型名
USE_MOCK=0 # 1=离线演示(无需 API Key)默认用智谱 GLM 免费额度,注册即送,无需充值。
streamlit run ui/app.py --server.port 8502打开 http://localhost:8502。
端口说明:示例用 8502 是为了避免与同机其他 Streamlit 项目(占用 8501)冲突;默认 8501 也可,按需调整。
- 上传需求文档(PDF / Word)
- 解析预览:查看识别的文档字数、分块数
- 需求结构化:AI 归纳「模块 → 功能点」清单
- 勾选范围:选择要生成用例的模块 / 功能点,配置用例类型(功能 / 异常 / 边界)
- 生成:并发调用大模型,进度条实时显示;可同时勾选「Mock 模式」离线试跑
- 编辑:在表格里增删改用例
- 导出 Excel:下载结构化测试用例表
平台按「模块 → 功能点 → 业务规则」理解需求。规则、阈值、状态流转写得越具体,生成的边界 / 异常用例越准。可直接用仓库里的模板上手:
python build_template.py # 生成 uploads/需求规格说明书模板.docx
.env(含 API Key)、uploads/*、outputs/*、.workbuddy/均已加入.gitignore,不会入库- 请勿把真实 Key 提交到任何仓库或粘贴到公开场合
- 推荐在环境变量 /
.env中管理密钥,而非硬编码
- 阶段二:启用
core/retriever.py的 Chroma 检索增强,支持多文档 / 长文档知识库式复用 - 可选:包一层 FastAPI,提供命令行批量生成与远程调用
- 可选:接口 / UI / 性能类用例的专项生成(需补充接口契约或页面结构作为输入)