# testcase_gen
**Repository Path**: joyamon/testcase_gen
## Basic Information
- **Project Name**: testcase_gen
- **Description**: 基于 Django + 规则引擎 + 通义千问(Qwen)的智能测试用例生成平台,支持从需求描述自动生成标准化测试用例,并可导出为 Excel / Markdown 格式。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-29
- **Last Updated**: 2026-04-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 测试用例生成系统
基于 Django + 规则引擎 + 通义千问(Qwen)的智能测试用例生成平台,支持从需求描述自动生成标准化测试用例,并可导出为 Excel / Markdown 格式。
---
## 功能特性
- **项目管理**:创建/编辑/删除测试项目,统一归类需求与用例
- **需求管理**:录入需求描述,支持优先级与状态标记
- **智能生成用例**:
- 🔧 **规则引擎模式**:基于关键词匹配(登录/注册/搜索/上传等 11 类场景)自动生成用例,无需 API Key
- 🤖 **LLM 模式**:调用通义千问大模型,深度理解需求语义生成用例
- ⚡ **混合模式**:规则引擎 + LLM 结果合并去重,覆盖率更高
- **用例管理**:支持手动新增/编辑/删除,设置优先级、状态、预期结果
- **导出功能**:
- Excel(`.xlsx`):带样式、冻结表头、自动列宽
- Markdown(`.md`):按需求分组,适合文档归档
---
## 技术栈
| 层次 | 技术 |
|------|------|
| Web 框架 | Django 6.0.3 |
| 数据库 | SQLite(内置,无需额外安装) |
| LLM 服务 | 阿里云 DashScope / 通义千问 |
| Excel 导出 | openpyxl 3.1.5 |
| 前端 UI | Bootstrap 5 + Bootstrap Icons |
---
## 项目结构
```
testcase_gen/
├── manage.py
├── requirements.txt
├── README.md
├── create_admin.py # 一键创建管理员脚本
├── testcase_gen/ # Django 项目配置
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── generator/ # 核心应用
│ ├── models.py # 数据模型(Project / Requirement / TestCase)
│ ├── views.py # 视图层(CRUD + 生成流水线)
│ ├── urls.py # URL 路由(20 条)
│ ├── rule_engine.py # 规则引擎(11 类场景 + 边界值)
│ ├── llm_service.py # LLM 服务(Qwen 集成 + 容错解析)
│ ├── export_utils.py # 导出模块(Excel + Markdown)
│ └── admin.py # Django Admin 配置
├── templates/ # 前端模板
│ ├── base.html # 公共布局(导航栏 + 统计栏)
│ └── generator/
│ ├── index.html # 首页仪表盘
│ ├── project_list.html # 项目列表
│ ├── project_form.html # 新建/编辑项目
│ ├── project_detail.html # 项目详情(需求列表)
│ ├── requirement_form.html # 新建/编辑需求
│ ├── requirement_detail.html # 需求详情(用例列表 + 生成)
│ ├── case_form.html # 新建/编辑用例
│ └── confirm_delete.html # 删除确认
└── static/ # 静态资源(CSS / JS)
```
---
## 快速开始
### 1. 克隆 / 获取项目
```bash
# 进入项目目录
cd 测试开发必备技能/软件测试/testcase_gen
```
### 2. 安装依赖
```bash
pip install -r requirements.txt
```
### 3. 初始化数据库
```bash
python manage.py migrate
```
### 4. 创建管理员账号
```bash
python create_admin.py
# 默认账号:admin / admin123
```
或手动创建:
```bash
python manage.py createsuperuser
```
### 5. 配置 Qwen API Key(可选)
编辑 `testcase_gen/settings.py`,找到并修改:
```python
DASHSCOPE_API_KEY = "sk-你的真实Key"
```
或通过环境变量设置(推荐生产环境使用):
```bash
# Windows
set DASHSCOPE_API_KEY=sk-xxxxxxxxxxxx
# Linux / macOS
export DASHSCOPE_API_KEY=sk-xxxxxxxxxxxx
```
> **注意**:不配置 API Key 时,规则引擎模式仍可正常使用,只有 LLM 模式/混合模式会跳过 Qwen 调用。
### 6. 启动服务
```bash
python manage.py runserver 8001
```
访问地址:
- 系统首页:http://127.0.0.1:8001/
- Admin 后台:http://127.0.0.1:8001/admin/
---
## 使用流程
```
新建项目 → 录入需求 → 自动生成用例 → 编辑优化 → 导出 Excel/Markdown
```
1. **新建项目**:首页点击「新建项目」,填写项目名称与描述
2. **录入需求**:进入项目详情,点击「添加需求」,填写需求标题和详细描述
3. **生成用例**:进入需求详情,选择生成模式(规则/LLM/混合),点击「生成测试用例」
4. **编辑优化**:对生成的用例进行手动调整(步骤、预期结果、优先级、状态)
5. **导出**:在需求详情页点击「导出 Excel」或「导出 Markdown」
---
## 规则引擎覆盖场景
| 场景关键词 | 生成用例类型 |
|-----------|-------------|
| 登录 / login | 正常登录、密码错误、账号不存在、空输入 |
| 注册 / register | 正常注册、重复注册、密码不匹配、格式校验 |
| 搜索 / search | 正常搜索、空关键词、特殊字符、无结果 |
| 上传 / upload | 正常上传、超大文件、格式限制、并发上传 |
| 支付 / pay | 正常支付、余额不足、支付超时、重复支付 |
| 权限 / permission | 有权限访问、无权限拦截、越权访问 |
| 删除 / delete | 正常删除、删除不存在数据、批量删除 |
| 修改 / update | 正常修改、非法字符、超长输入 |
| 查询 / query | 单条查询、分页查询、条件组合 |
| 导出 / export | 正常导出、空数据导出、大数据量导出 |
| 数字/金额字段 | 最大值、最小值、负数、0、边界±1 |
---
## 常见问题
**Q:不配置 API Key 能用吗?**
A:可以,规则引擎模式完全离线可用。LLM 和混合模式需要有效的 DashScope API Key。
**Q:如何获取 Qwen API Key?**
A:访问 [阿里云百炼平台](https://bailian.console.aliyun.com/) 注册并创建 API Key,新用户有免费额度。
**Q:数据存在哪里?**
A:默认使用 SQLite,数据库文件为项目根目录下的 `db.sqlite3`。
**Q:如何切换为 MySQL / PostgreSQL?**
A:修改 `testcase_gen/settings.py` 中的 `DATABASES` 配置即可,Django ORM 完全兼容。
---
## License
#### 截图
- 首页
- 项目管理
- 生成测试用例
- 导出Excel
