# ApiTestPlatform
**Repository Path**: zywstart/api-test-platform
## Basic Information
- **Project Name**: ApiTestPlatform
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 2
- **Created**: 2024-04-30
- **Last Updated**: 2026-09-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
QTestRunner
基于RuoYi-Vue3+FastAPI前后端分离的接口测试平台
[本项目gitee地址](https://gitee.com/zywstart/api-test-platform.git)
[本项目github地址](https://github.com/diaodeng/ApiTestPlatform.git)
## 平台简介
QTestRunner(api-test-platform)是一套前后端分离 + 桌面客户端的接口测试平台,由三部分组成:
* **服务端**(`server/`):FastAPI 后端,承担用例管理、任务调度、Agent 通信、AI 分析等业务;
* **Web 管理端**(`web/`):Vue3 + Vite 前端(RuoYi-Vue3 模板),管理用例、任务、工单、AI 配置等;
* **桌面客户端**(`client_new/`):pywebview 客户端,作为测试 Agent 注册到服务端,接收并执行下发任务(接口测试、桌面测试、Web 测试、抓包代理等),旧版 Flet 客户端(`client/`)保留但不再演进。
* 特别鸣谢:[RuoYi-Vue3](https://github.com/yangzongzhuan/RuoYi-Vue3)
## 测试相关功能
1. 项目管理
2. 模块管理
3. 配置管理
4. 用例管理
5. 测试套件
6. 定时任务
7. 报告管理
8. 环境管理
9. 客户端管理: 可以将用例执行转发到对应的客户机执行,客户机启动时会自动注册到服务端
10. 转发规则管理: 转发规则,比如将固定开头的URL换成其他URL来请求
11. 接口管理
## 内置功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
3. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
4. 部门管理:配置系统组织机构(公司、部门、小组)。
5. 岗位管理:配置系统用户所属担任职务。
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. 参数管理:对系统动态配置常用参数。
8. 通知公告:系统通知公告信息发布维护。
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. 登录日志:系统登录日志记录查询包含登录异常。
11. 在线用户:当前系统中活跃用户状态监控。
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
13. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
14. 缓存监控:对系统的缓存信息查询,命令统计等。
15. 系统接口:根据业务代码自动生成相关的api接口文档。
## 项目结构
```
api-test-platform
├── server/ # FastAPI 后端(uv 管理依赖,module_admin/module_qtr/module_task 按域分模块)
├── web/ # Vue3 + Vite 前端(RuoYi-Vue3 模板,Docker 由 nginx 托管构建产物)
│ └── public/docs/ # 面向用户的说明文档与更新记录(前端自动发现展示)
├── client_new/ # 桌面客户端(pywebview + WebView2,测试 Agent,当前主力)
├── client/ # 旧版 Flet 客户端(保留,不再演进)
└── wiki/ # 项目内部知识库(架构、组件、流程设计文档)
```
## 快速开始
### 后端(server/)
```bash
# 进入后端目录
cd server
# 安装依赖(uv 管理,含 .venv 创建)
uv sync
# 配置环境
# .env.base 为公共配置,.env.dev / .env.prod 分别对应开发/生产环境的数据库与 redis
# 数据库支持 MySQL(DB_TYPE=mysql)与 SQLite(DB_TYPE=sqlite)
# 初始化数据库
# 新建数据库后执行 server/sql/apitest.sql(增量变更脚本在 server/sql/ 下按日期追加)
# 启动后端
uv run python app.py --env=dev
# 代码检查
uv run ruff check .
```
### 前端(web/)
```bash
# 进入前端目录
cd web
# 安装依赖
npm install --registry=https://registry.npmmirror.com
# 启动开发服务
npm run dev
# 浏览器访问(默认账号密码 admin / admin123,访问地址以启动输出为准)
```
### 桌面客户端(client_new/)
```bash
# 进入客户端目录
cd client_new
# 安装依赖
uv sync
# 启动客户端(作为测试 Agent 注册到服务端)
uv run python main.py
```
旧版 Flet 客户端(client/)启动方式:`cd client && uv run flet run`。
## 构建与发版
### 桌面客户端一键构建(client_new/scripts/build_release.py)
```bash
cd client_new
# 开发打包(默认):允许未提交代码,产物在 dist_dev/
uv run python scripts/build_release.py
# 正式发版打包:三道硬闸门(工作区干净、HEAD 上有 tag v{version.py 版本}、Gitee 无同名 release),
# 任一不满足拒绝构建;产物在 dist_release/(exe、portable.zip、插件、sha256、release-manifest.json)
uv run python scripts/build_release.py --mode release
```
- 版本号唯一来源 `client_new/version.py`(纯数字四段式),tag 格式 `v{版本号}`;
- 发版顺序:改 version.py → commit → 打 tag → release 构建 → 按 `release-manifest.json` 清单上传 Gitee release;
- 主程序重依赖拆分为插件包(desktop-test / web-test / proxy),由客户端「插件管理」在线下载安装;
- 客户端内置检查更新(走 Gitee release),详见 `client_new/README.md` 与 `wiki/entities/components/client-release-build.md`。
### Docker 部署
```bash
# 后端(qtr-api,端口 9099,挂载 server/.env.dev 配置)
cd server && docker compose up -d
# 前端(多阶段构建,nginx 托管 web/dist 构建产物)
cd web && docker build -t qtr-web .
```
## 文档
- **用户说明**:`web/public/docs/`(平台内自动发现展示),覆盖 Agent 连接、插件管理、抓包 Mock、AI 配置等模块使用说明;
- **更新记录**:`web/public/docs/updates/`(按时间倒序);
- **内部设计知识库**:`wiki/`(架构、组件、流程设计,供开发与 AI 分析使用)。