从产品文档自动生成测试场景(User Story)的工具。输入产品功能文档(Markdown/PDF),经过实体提取、功能点识别与合并、用户故事生成等流程,输出结构化的测试场景 JSON。
- Python 3.12(使用
uv管理,版本由.python-version锁定) - 推荐使用 uv 作为包管理工具
# 安装 uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 在项目目录下同步依赖
cd doc2sc
uv sync复制示例配置并填写你的 API Key:
cp ".env example" .env编辑 .env 文件:
# LLM 配置(支持任何 OpenAI 兼容接口)
LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
LLM_API_KEY=sk-xxx # 替换为你的 API Key
LLM_MODEL_NAME=qwen3-vl-plus # 支持多模态的模型(用于处理图片)
LLM_SEMAPHORE_NUM=8 # 并发请求数,按需调整
EMBEDDING_MODEL_NAME=text-embedding-v4当前默认使用阿里云百炼(DashScope)的 Qwen 模型。如需使用其他 OpenAI 兼容服务,修改
LLM_BASE_URL和LLM_MODEL_NAME即可。
以 FastAPI 服务方式运行,对外提供 HTTP 接口:
uv run server.py通过与 Autotask 联动进行测试场景的生成和执行,具体使用请参见用户手册。
doc2sc/
├── documents/ # 存放输入文档(每个应用一个子目录)
│ └── <app_name>/ # Markdown 或 PDF 文档放这里
├── output/ # 生成结果输出目录
│ └── <app_name>/
│ └── enhanced_user_stories.json # 生成的用户故事/测试场景
├── output_all/ # 批量生成的汇总结果
├── src/doc2sc3/ # 核心处理模块
├── main.py # 主流程入口
├── server.py # FastAPI 服务
├── generate_all.py # 批量生成脚本
└── .env # 环境变量配置
主要接口:
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /generate |
基于本地文档目录生成(需提前放好文档) |
| POST | /generate_from_content |
直接上传文档内容生成 |
| GET | /status/{task_id} |
查询任务状态 |
| GET | /health |
健康检查 |
- 实体提取:从文档中识别页面(Page)和资源(Resource)实体
- 功能点识别与合并:提取功能点,进行聚类与去重合并
- 用户故事生成:基于功能点生成结构化的测试场景(含初始状态、操作步骤、预期结果)
- 知识图谱验证(可选):构建知识图谱,通过 ReAct Agent 验证生成结果的准确性