Files
Meshray-Manager/docs/DDNS 双模式 - 快速验证.md
T
2026-06-30 15:14:37 +08:00

273 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
**验证人员**: _____________
**验证状态**: ⏳ 进行中 / ✅ 已完成 / ❌ 阻塞