123 lines
3.8 KiB
Markdown
123 lines
3.8 KiB
Markdown
|
|
# 权限与日志改造自动化测试结果
|
|||
|
|
|
|||
|
|
## 1. 测试时间
|
|||
|
|
|
|||
|
|
2026-08-12
|
|||
|
|
|
|||
|
|
## 2. 测试环境
|
|||
|
|
|
|||
|
|
| 项目 | 地址/状态 |
|
|||
|
|
|---|---|
|
|||
|
|
| Frontend | `http://172.25.179.69:16801` |
|
|||
|
|
| Backend | `http://172.25.179.69:17861/modelTF` |
|
|||
|
|
| WSL | `172.25.179.69` |
|
|||
|
|
| Docker | 已运行 |
|
|||
|
|
|
|||
|
|
## 3. 自动执行结果
|
|||
|
|
|
|||
|
|
| 用例 | 结果 | 实际结果 |
|
|||
|
|
|---|---|---|
|
|||
|
|
| 容器状态 | 通过 | Compute、Frontend、Backend、Redis、MinIO 均为 `healthy` |
|
|||
|
|
| Backend 健康检查 | 通过 | `/modelTF/health` 返回 HTTP 200 |
|
|||
|
|
| Frontend 首页 | 通过 | `/` 返回 HTTP 200 |
|
|||
|
|
| 未登录访问数据集接口 | 通过 | `/modelTF/dataset-manage` 返回 HTTP 401 |
|
|||
|
|
| Redis 容器状态 | 通过 | 容器状态为 healthy |
|
|||
|
|
| 轮询正常日志降噪 | 通过 | 最近 120 秒未发现 `compute jobs polled` 或 `health check requested` 高频日志 |
|
|||
|
|
| 轮询异常日志保留 | 未触发 | 当前未人为停止算力节点,未产生轮询失败日志 |
|
|||
|
|
| 前端构建 | 通过 | `npm run build` 成功 |
|
|||
|
|
| 后端编译 | 通过 | 相关 Python 模块 `py_compile` 成功 |
|
|||
|
|
| Git 差异检查 | 通过 | `git diff --check` 无格式错误 |
|
|||
|
|
|
|||
|
|
## 4. 数据库字段迁移
|
|||
|
|
|
|||
|
|
### 静态检查结果
|
|||
|
|
|
|||
|
|
初始化 SQL 和运行时迁移逻辑已包含以下字段:
|
|||
|
|
|
|||
|
|
- `models.deleted_at`
|
|||
|
|
- `models.deleted_by`
|
|||
|
|
- `models.tenant_id`
|
|||
|
|
- `models.project_id`
|
|||
|
|
- `datasets.deleted_at`
|
|||
|
|
- `datasets.deleted_by`
|
|||
|
|
- `datasets.tenant_id`
|
|||
|
|
- `datasets.project_id`
|
|||
|
|
- `trained_models.deleted_at`
|
|||
|
|
- `trained_models.deleted_by`
|
|||
|
|
- `trained_models.tenant_id`
|
|||
|
|
- `trained_models.project_id`
|
|||
|
|
- `eval_tasks.deleted_at`
|
|||
|
|
- `eval_tasks.deleted_by`
|
|||
|
|
- `sessions.issued_at`
|
|||
|
|
- `sessions.expires_at`
|
|||
|
|
|
|||
|
|
### 远程数据库检查状态
|
|||
|
|
|
|||
|
|
已通过当前 Backend 容器使用一次性 PostgreSQL 连接检查远程数据库,字段迁移已完成。
|
|||
|
|
|
|||
|
|
确认存在:
|
|||
|
|
|
|||
|
|
- `models`: `created_by`、`tenant_id`、`project_id`、`deleted_at`、`deleted_by`
|
|||
|
|
- `datasets`: `created_by`、`tenant_id`、`project_id`、`deleted_at`、`deleted_by`
|
|||
|
|
- `trained_models`: `created_by`、`tenant_id`、`project_id`、`deleted_at`、`deleted_by`
|
|||
|
|
- `eval_tasks`: `created_by`、`tenant_id`、`project_id`、`deleted_at`、`deleted_by`
|
|||
|
|
- `sessions`: `issued_at`、`expires_at`、`logout_at`
|
|||
|
|
|
|||
|
|
使用的检查 SQL:
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
SELECT table_name, column_name
|
|||
|
|
FROM information_schema.columns
|
|||
|
|
WHERE table_name IN ('models', 'datasets', 'trained_models', 'eval_tasks', 'sessions')
|
|||
|
|
ORDER BY table_name, ordinal_position;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 5. Redis 说明
|
|||
|
|
|
|||
|
|
已从当前环境确认 Redis 实际密码配置为 `Tvhrf659WaX-S1B8FG6c2kSZK07XTv82`,使用该密码验证返回 `PONG`。
|
|||
|
|
|
|||
|
|
项目配置已同步为:
|
|||
|
|
|
|||
|
|
```env
|
|||
|
|
REDIS_PASSWORD=Tvhrf659WaX-S1B8FG6c2kSZK07XTv82
|
|||
|
|
REDIS_URL=redis://:Tvhrf659WaX-S1B8FG6c2kSZK07XTv82@redis:6379/0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
后续验证应从当前 Docker 环境读取实际密码后执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker compose config
|
|||
|
|
docker exec yg-ft-redis printenv REDISCLI_AUTH
|
|||
|
|
docker exec yg-ft-redis redis-cli -a "$REDISCLI_AUTH" ping
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
预期返回:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
PONG
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 6. 未自动执行的破坏性用例
|
|||
|
|
|
|||
|
|
以下用例需要测试账号、测试资源或人工确认,未自动执行,以避免影响现有数据:
|
|||
|
|
|
|||
|
|
- ACL 授权和撤销。
|
|||
|
|
- 训练任务创建、停止、重试和删除。
|
|||
|
|
- 评测任务启动和删除。
|
|||
|
|
- 推理模型加载、卸载和删除。
|
|||
|
|
- 模型权重合并和导出。
|
|||
|
|
- GPU 分配、占用和释放。
|
|||
|
|
- 软删除后资源恢复和数据完整性。
|
|||
|
|
- 人为停止算力节点验证轮询失败恢复。
|
|||
|
|
- 登录失败 5 次后的限流验证。
|
|||
|
|
- Token 过期和注销后的访问验证。
|
|||
|
|
|
|||
|
|
## 7. 当前结论
|
|||
|
|
|
|||
|
|
当前服务基础可用,页面和 Backend 健康接口正常,未登录鉴权正常,日志降噪逻辑生效,前后端构建通过。
|
|||
|
|
|
|||
|
|
当前仍需人工或使用专用测试数据验证:
|
|||
|
|
|
|||
|
|
1. 权限矩阵中的创建、执行、删除、审批和 GPU 占用场景。
|
|||
|
|
2. Token 过期和登录失败限流场景。
|