Skip to content

Repository files navigation

AI 自动化测试用例生成平台

上传需求文档(PDF / Word),平台自动解析 → 结构化需求 → 按测试点生成覆盖全面的测试用例 → 一键导出 Excel。

个人测试提效工具:把需求文档丢进去,几分钟内拿到结构化、可追溯、可直接执行的测试用例清单。

✨ 功能特性

  • 多格式解析:支持 PDF(PyMuPDF)与 Word(python-docx),统一输出纯文本
  • 智能分块:基于 langchain-text-splitters 递归分块,保留语义边界
  • 需求结构化:一次 LLM 调用归纳出「模块 → 功能点」清单,界面可勾选生成范围
  • 测试点驱动生成:先列出覆盖正常 / 异常 / 边界的测试点,再逐点批量生成用例,不约束条数,尽量覆盖完全
  • 多模型可切换
    • 🟢 智谱 GLM(默认,免费额度)— glm-4-flash
    • 🔵 通义千问(DashScope)— qwen-plus
    • 🟡 Mock 模式(离线演示,无需 API Key)
  • 用例字段:用例编号 / 所属模块 / 用例名称 / 前置条件 / 测试步骤 / 预期结果 / 优先级(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   # 需求术语表与实现计划

🚀 快速开始

1. 安装

python -m venv venv
source venv/bin/activate        # Windows: venv\Scripts\activate
pip install -r requirements.txt

2. 配置模型

复制环境变量样例并填入你的 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 免费额度,注册即送,无需充值。

3. 启动

streamlit run ui/app.py --server.port 8502

打开 http://localhost:8502

端口说明:示例用 8502 是为了避免与同机其他 Streamlit 项目(占用 8501)冲突;默认 8501 也可,按需调整。

📖 使用流程

  1. 上传需求文档(PDF / Word)
  2. 解析预览:查看识别的文档字数、分块数
  3. 需求结构化:AI 归纳「模块 → 功能点」清单
  4. 勾选范围:选择要生成用例的模块 / 功能点,配置用例类型(功能 / 异常 / 边界)
  5. 生成:并发调用大模型,进度条实时显示;可同时勾选「Mock 模式」离线试跑
  6. 编辑:在表格里增删改用例
  7. 导出 Excel:下载结构化测试用例表

📝 需求文档怎么写效果更好

平台按「模块 → 功能点 → 业务规则」理解需求。规则、阈值、状态流转写得越具体,生成的边界 / 异常用例越准。可直接用仓库里的模板上手:

python build_template.py     # 生成 uploads/需求规格说明书模板.docx

⚠️ 安全

  • .env(含 API Key)、uploads/*outputs/*.workbuddy/ 均已加入 .gitignore不会入库
  • 请勿把真实 Key 提交到任何仓库或粘贴到公开场合
  • 推荐在环境变量 / .env 中管理密钥,而非硬编码

🗺️ 演进方向

  • 阶段二:启用 core/retriever.py 的 Chroma 检索增强,支持多文档 / 长文档知识库式复用
  • 可选:包一层 FastAPI,提供命令行批量生成与远程调用
  • 可选:接口 / UI / 性能类用例的专项生成(需补充接口契约或页面结构作为输入)

About

AI 自动化测试用例生成平台 — 上传 PDF/Word 需求文档,自动解析并生成结构化测试用例,支持 Excel 导出

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages