# AgileConfig 配置管理功能测试说明 ## 测试环境准备 ### 1. 配置检查 确认 `appsettings.json` 中的 AgileConfig 配置正确: ```json { "AgileConfig": { "appId": "CloudGaming", "secret": "95BB717C61D1ECB0E9FB82C932CC77FF", "nodes": "http://124.220.55.158:94", "url": "http://124.220.55.158:94", "env": "PROD", "UserName": "admin", "Password": "dbt@com@1234" } } ``` ### 2. 权限配置 确保用户角色拥有以下权限: - `system:agileconfig:query` - 查询配置权限 - `system:agileconfig:edit` - 编辑配置权限 - `system:agileconfig:remove` - 删除配置权限 ## 测试步骤 ### 1. 启动项目 #### 后端 ```bash cd ZR.Admin.WebApi dotnet run ``` #### 前端 ```bash cd ZR.Vue npm run dev ``` ### 2. 访问配置管理页面 1. 登录后台管理系统 2. 导航到:系统管理 -> AgileConfig配置管理 3. 页面路径:`/system/agileConfig` ### 3. 测试连接 点击页面右上角的"测试连接"按钮,验证与 AgileConfig 服务器的连接。 **预期结果**:提示"连接成功" ### 4. 读取配置 页面加载时会自动从 AgileConfig 读取配置。 **预期结果**: - 页面显示所有配置分组 - 各配置项显示当前值 - 如果 AgileConfig 中没有配置,显示默认值 ### 5. 修改配置 #### 测试场景 1: 修改简单配置项 1. 展开"应用配置 (AppConfig)" 2. 修改"送花间隔时间"为 `7200` 3. 点击"保存配置" 4. 等待保存成功提示 **预期结果**: - 显示"配置保存成功,已自动发布" - 后端日志显示调用 AgileConfig API - AgileConfig 配置中心自动发布配置 #### 测试场景 2: 修改上传服务类型 1. 修改"上传服务类型"从 `cos` 改为 `server` 2. 保存配置 **预期结果**: - 配置保存成功 - AgileConfig 中的 `AppConfig:uploadServiceType` 更新为 `server` #### 测试场景 3: 修改嵌套配置 1. 展开"应用配置 (AppConfig)" 2. 修改"图片压缩质量"为 `90` 3. 修改"COS域名" 4. 保存配置 **预期结果**: - 配置保存成功 - AgileConfig 中的 `AppConfig:upload_config:imagequality` 更新为 `90` - 其他嵌套配置项也正确更新 #### 测试场景 4: 修改图片上传配置 1. 点击"应用图标"上传按钮 2. 选择图片上传 3. 保存配置 **预期结果**: - 图片上传成功 - 配置中保存图片URL - AgileConfig 中的 `AppConfig:AppIcon` 更新为图片URL #### 测试场景 5: 修改多个配置分组 1. 修改 AppConfig 中的配置 2. 展开"JWT配置 (JwtTokenConfig)" 3. 修改"访问令牌过期时间" 4. 展开"Redis配置 (Redis)" 5. 修改"实例名称" 6. 保存配置 **预期结果**: - 所有修改的配置项都保存成功 - 未修改的配置项不会被更新(增量更新) ### 6. 重置配置 1. 修改任意配置项 2. 点击"重置"按钮 3. 确认重置 **预期结果**: - 配置恢复到页面加载时的状态 - 提示"已重置" ### 7. 验证增量更新 #### 测试方法: 1. 只修改一个配置项(如:FlowerSendInterval) 2. 打开浏览器开发者工具 -> Network 标签 3. 保存配置 4. 查看请求数据 **预期结果**: - 请求中只包含修改的配置项和所属分组 - 未修改的配置项不会被发送 ### 8. 验证配置发布 1. 修改并保存配置 2. 登录 AgileConfig 管理后台(http://124.220.55.158:94) 3. 查看 `CloudGaming` 应用的配置历史 **预期结果**: - 配置已自动发布 - 配置版本号递增 - 配置项值与修改后一致 ## API 测试 可以使用 Postman 或其他工具直接测试后端 API: ### 1. 获取配置 ``` GET /system/agileconfig/configs Headers: Authorization: Bearer {token} ``` ### 2. 保存配置 ``` POST /system/agileconfig/save Headers: Authorization: Bearer {token} Content-Type: application/json Body: { "configData": { "AppConfig": { "FlowerSendInterval": 7200, "uploadServiceType": "cos", ... }, ... } } ``` ### 3. 测试连接 ``` GET /system/agileconfig/test Headers: Authorization: Bearer {token} ``` ## 常见问题排查 ### 1. 连接失败 - 检查 AgileConfig 服务器是否可访问 - 验证用户名密码是否正确 - 检查网络防火墙设置 ### 2. 保存失败 - 检查用户权限 - 查看后端日志错误信息 - 验证 AgileConfig API 响应 ### 3. 配置未更新 - 确认配置已发布 - 清除业务项目缓存 - 重启业务项目 ### 4. 图片上传失败 - 检查上传服务配置(COS或本地) - 验证图片大小和格式 - 检查上传路径权限 ## 数据验证 ### 在 AgileConfig 中验证配置 1. 访问 AgileConfig 管理后台 2. 登录(用户名: admin, 密码: dbt@com@1234) 3. 进入应用 `CloudGaming` 4. 环境选择 `PROD` 5. 查看配置项列表 **验证点**: - 配置项 Key 使用冒号分隔(如:`AppConfig:FlowerSendInterval`) - 配置项 Value 与页面输入一致 - 配置状态为"已发布" ### 在业务项目中验证 业务项目应该能够通过 AgileConfig 客户端读取到最新配置。 ## 测试完成标准 - ✅ 连接测试通过 - ✅ 配置读取正常 - ✅ 所有配置项类型都能正确保存(文本、数字、下拉、上传等) - ✅ 增量更新正常(只更新修改的配置项) - ✅ 配置自动发布成功 - ✅ 重置功能正常 - ✅ 页面无报错 - ✅ AgileConfig 中配置正确 ## 性能测试 ### 批量修改测试 1. 同时修改所有分组的配置项 2. 保存配置 3. 记录保存时间 **预期结果**: - 保存时间 < 5秒(取决于网络和配置项数量) - 无超时错误 ## 安全测试 ### 权限测试 1. 使用无权限的用户访问配置页面 **预期结果**: - 无法访问页面或操作被拒绝 ### 敏感信息保护 - 密码类型的字段应该显示为密码样式(如:JWT密钥、数据库连接串密码部分) - 输入时显示为 `****` ## 测试记录 | 测试项 | 测试结果 | 测试时间 | 备注 | |--------|---------|---------|------| | 连接测试 | | | | | 读取配置 | | | | | 修改简单配置 | | | | | 修改嵌套配置 | | | | | 图片上传 | | | | | 批量修改 | | | | | 重置功能 | | | | | 增量更新 | | | | | 自动发布 | | | | | 权限控制 | | | | --- **测试负责人**:___________ **测试日期**:___________ **测试环境**:___________