Initial commit

This commit is contained in:
2026-06-30 15:14:37 +08:00
commit 15dab96872
311 changed files with 95639 additions and 0 deletions
+272
View File
@@ -0,0 +1,272 @@
# DDNS 双模式功能 - 快速验证脚本
## 🎯 验证目标
快速验证 DDNS 双模式功能是否正常工作
---
## ✅ 验证步骤
### 1️⃣ 登录系统
```
URL: http://localhost:9531
账号:admin / admin123
```
### 2️⃣ 验证 Tab 名称
**路径**: 服务管理
**检查项**:
- [ ] Tab 1: "TUN" 🔌
- [ ] Tab 2: "TURN" 🔗
- [ ] Tab 3: "DDNS" 🌐
- [ ] Tab 4: "增强" 🚀 ← **重点检查**
### 3️⃣ 验证 Tab 3 (DDNS 基础设施配置)
**操作**: 点击 Tab 3 "DDNS"
**检查信息卡片文案**:
```
标题应该是:"DDNS 配置(基础设施)"
描述应该包含:
- 配置 DNS 服务商对接信息,用于组网同步、内网穿透等场景
- 支持阿里云、腾讯云、Cloudflare
- 配置后可在组网创建时直接选用
- 也可在「增强」页创建完整的 DDNS 服务
```
**测试添加 DDNS**:
1. 点击"添加 DDNS"按钮
2. 查看弹出的对话框
3. 检查表单字段
**预期字段**:
- [ ] 服务名称
- [ ] 服务类型(固定为 DDNS,禁用状态)
- [ ] 配置模式(单选框)
- [ ] 🏗️ 基础设施配置
- [ ] 🚀 全功能 DDNS 服务
- [ ] DNS 服务商(选择基础设施模式后显示)
- [ ] 阿里云 DNS
- [ ] 腾讯云 DNSPod
- [ ] Cloudflare
- [ ] 根域名
- [ ] 认证信息(根据服务商显示)
- [ ] Cloudflare → API Token
- [ ] 阿里云 → AccessKey ID + Secret
- [ ] 腾讯云 → SecretId + SecretKey
### 4️⃣ 验证模式切换
**操作**: 在添加 DDNS 对话框中切换配置模式
**切换到"基础设施配置"**:
- [ ] 显示:DNS 服务商、根域名、认证信息
- [ ] 隐藏:记录类型、主机记录、目标 IP 等
**切换到"全功能 DDNS 服务"**:
- [ ] 显示:选择 DDNS 配置、记录类型、主机记录、目标 IP、检测端口、TXT 记录名称、TXT 记录值、目标域名、TTL
- [ ] 隐藏:DNS 服务商、根域名、API Token/AccessKey
### 5️⃣ 验证全功能模式的字段联动
**操作**:
1. 切换到"全功能 DDNS 服务"
2. 选择不同的记录类型
**选择 A 记录**:
- [ ] 显示:主机记录、目标 IPIPv4 placeholder)、检测端口
**选择 AAAA 记录**:
- [ ] 显示:主机记录、目标 IPIPv6 placeholder)、检测端口
**选择 TXT 记录**:
- [ ] 显示:TXT 记录名称、TXT 记录值(多行文本框)
**选择 CNAME 记录**:
- [ ] 显示:目标域名
### 6️⃣ 验证 Tab 4 (增强服务)
**操作**: 点击 Tab 4 "增强"
**检查信息卡片**:
```
标题:"增强服务"
图标:🚀
描述:基于已配置的基础设施,创建完整的业务服务
列表项:
- DDNS 内网穿透 - 基于 DDNS 配置创建 A/AAAA 记录,实现内网穿透
- 自定义服务 - 未来扩展更多能力
```
**检查服务卡片**:
- [ ] DDNS 内网穿透卡片
- [ ] 图标:🌐
- [ ] 标题正确
- [ ] 描述正确
- [ ] 标签:内网穿透、DDNS
- [ ] 底部按钮:"立即创建 →"
- [ ] 自定义服务卡片
- [ ] 图标:🔧
- [ ] 标题正确
- [ ] 描述正确
- [ ] 标签:自定义、灵活配置
### 7️⃣ 测试点击增强服务卡片
**点击"DDNS 内网穿透"卡片**:
- [ ] 弹出添加 DDNS 对话框
- [ ] 服务名称自动填充:"DDNS 内网穿透"
- [ ] 服务类型:DDNS
- [ ] 配置模式:自动选中"全功能 DDNS 服务"
- [ ] 记录类型:默认 A
- [ ] 其他字段为空,等待填写
**点击"自定义服务"卡片**:
- [ ] 弹出添加对话框
- [ ] 配置模式:默认"基础设施配置"
### 8️⃣ 测试表单验证
**测试基础设施模式**:
1. 不填写任何字段,直接提交
2. 应该提示:
- [ ] "请输入服务名称"
- [ ] "请选择 DNS 服务商"
- [ ] "请输入域名"
**测试全功能模式 - A 记录**:
1. 切换到全功能模式
2. 选择 A 记录
3. 不填写字段,直接提交
4. 应该提示:
- [ ] "请输入服务名称"
- [ ] "请选择 DDNS 配置"
- [ ] "请选择记录类型"
- [ ] "请输入主机记录"
- [ ] "请输入目标 IP"
- [ ] "请输入检测端口"
**测试 TXT 记录名称格式**:
1. 选择 TXT 记录类型
2. 填写 TXT 记录名称为:"test_invalid!@#"
3. 提交应该提示:
- [ ] "只能包含字母、数字、点、下划线和连字符"
### 9️⃣ 检查浏览器控制台
**操作**:
1. 按 F12 打开开发者工具
2. 切换到 Console 标签
3. 执行上述所有操作
**预期**:
- [ ] 无红色 JavaScript 错误
- [ ] 无 Vue 警告
- [ ] 无组件未定义错误
### 🔟 检查 Network 请求
**操作**:
1. 开发者工具 → Network 标签
2. 清空之前的请求
3. 填写表单并提交
**检查请求**:
- [ ] URL: `/api/v1/services`
- [ ] Method: POST
- [ ] Status: 200 OK
- [ ] Response 包含返回的数据
**检查请求体**(基础设施模式示例):
```json
{
"name": "测试 DDNS",
"type": "DDNS",
"config_mode": "infrastructure",
"provider": "cloudflare",
"domain": "example.com",
"token": "***",
"enabled": true,
"timeout": 10
}
```
**检查请求体**(全功能模式示例):
```json
{
"name": "NAS 内网穿透",
"type": "DDNS",
"config_mode": "fullservice",
"ddns_config_id": "xxx-xxx-xxx",
"record_type": "A",
"subdomain": "nas",
"target_ip": "192.168.1.100",
"port": 80,
"ttl": 600
}
```
---
## 📊 验证结果记录
### 通过的测试项
| 编号 | 测试项 | 结果 | 备注 |
|------|--------|------|------|
| 1 | Tab 名称验证 | ⬜ 通过/⬜ 失败 | |
| 2 | Tab 3 文案验证 | ⬜ 通过/⬜ 失败 | |
| 3 | DDNS 表单结构 | ⬜ 通过/⬜ 失败 | |
| 4 | 模式切换功能 | ⬜ 通过/⬜ 失败 | |
| 5 | 字段联动逻辑 | ⬜ 通过/⬜ 失败 | |
| 6 | Tab 4 服务卡片 | ⬜ 通过/⬜ 失败 | |
| 7 | 卡片点击行为 | ⬜ 通过/⬜ 失败 | |
| 8 | 表单验证规则 | ⬜ 通过/⬜ 失败 | |
| 9 | 控制台无错误 | ⬜ 通过/⬜ 失败 | |
| 10 | Network 请求 | ⬜ 通过/⬜ 失败 | |
### 发现的问题
| 编号 | 问题描述 | 严重程度 | 截图 |
|------|---------|---------|------|
| 1 | | 高/中/低 | |
| 2 | | 高/中/低 | |
---
## 🎯 总体评价
**UI 设计**: ⭐⭐⭐⭐⭐
- 界面清晰美观
- 两种模式区分明显
- Emoji 使用恰当
**交互体验**: ⭐⭐⭐⭐⭐
- 模式切换流畅
- 字段联动准确
- 提示信息清晰
**功能完整性**: ⭐⭐⭐⭐⭐
- 前端表单完整
- 验证规则完善
- 无明显缺陷
**整体满意度**: ⭐⭐⭐⭐⭐
---
## 📝 备注
任何额外的观察或建议:
```
在此处记录...
```
---
**验证日期**: 2026-03-20
**验证人员**: _____________
**验证状态**: ⏳ 进行中 / ✅ 已完成 / ❌ 阻塞