功能测试文档.md 9.2 KB

智能体平台新增功能测试文档

测试日期:2026-05-19

环境:Docker 本地环境(http://127.0.0.1:80)


前置条件

  1. 已执行 docker-compose up -d 启动所有服务
  2. 已登录管理员账号,获取 Token
  3. 知道自己的 workspace_idapplication_id

一、工具使用统计(任务 8)

测试入口

工具列表页 → 鼠标悬停工具卡片 → 点击统计图标(🔍)

测试步骤

步骤 操作 预期结果
1 进入 /tool 页面,鼠标悬停任意工具卡片 出现统计图标按钮
2 点击统计图标 弹出统计抽屉,显示标题 "{工具名} - Statistics"
3 查看统计数据 显示:总调用次数、成功率、成功/失败次数、平均/最小/最大耗时
4 切换时间范围(7天/30天/90天) 数据随之刷新
5 关闭抽屉 抽屉正常关闭

验证要点

  • 统计图标在非批量模式下才显示
  • 未调用过的工具显示全 0 数据
  • 时间范围切换后数据正确刷新
  • 抽屉关闭后再打开数据正常

二、知识库用量统计(任务 9)

测试入口

知识库设置页 → 信息区顶部统计卡片

测试步骤

步骤 操作 预期结果
1 进入任意知识库 → 点击"设置" tab 页面顶部显示三个统计卡片
2 查看"文档数"卡片 显示该知识库的文档总数
3 查看"段落数"卡片 显示该知识库的段落总数
4 查看"命中数"卡片 显示该知识库的总命中次数
5 上传新文档后刷新页面 文档数、段落数相应增加

验证要点

  • 统计卡片在 Info 标题下方、BaseForm 上方
  • 空知识库显示全 0
  • 加载中有 loading 动画
  • 不同知识库数据独立

三、应用 API 限流(任务 10)

测试入口

应用概览页 → 点击 "API Rate Limit" 按钮

测试步骤

步骤 操作 预期结果
1 进入应用概览页 → 点击 "API Rate Limit" 弹出限流配置对话框
2 查看默认配置 默认关闭状态,开关为 off
3 开启限流开关 展开配置项:类型、最大请求数、突发大小、窗口时间
4 选择限流类型 QPM 下拉框正确切换
5 设置最大请求数为 60 输入框数值更新
6 设置突发大小为 10 输入框数值更新
7 设置窗口时间为 60 秒 输入框数值更新
8 点击"保存" 对话框关闭,设置成功提示
9 重新打开对话框 之前保存的配置正确回显
10 点击"Reset Counters" 弹出确认框,确认后提示重置成功

验证要点

  • 关闭状态下配置项隐藏
  • 开启状态下所有配置项可编辑
  • 限流类型支持 QPS/QPM/QPH/QPD 四种
  • 保存后重新打开数据一致
  • Reset Counters 有二次确认

API 验证(可选)

# 获取限流配置
curl -H "Authorization: Bearer YOUR_TOKEN" \
  http://127.0.0.1:8080/admin/api/workspace/default/application/{APP_ID}/rate_limit

# 更新限流配置
curl -X PUT -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"is_enabled":true,"rate_type":"QPM","max_requests":60,"burst_size":10,"window_seconds":60}' \
  http://127.0.0.1:8080/admin/api/workspace/default/application/{APP_ID}/rate_limit/update

# 重置计数
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
  http://127.0.0.1:8080/admin/api/workspace/default/application/{APP_ID}/rate_limit/reset

四、插件管理(任务 4/5/6)

4.1 插件注册与列表

步骤 操作 预期结果
1 进入 /plugin 页面 显示插件列表(空列表或已有插件)
2 点击"创建"按钮 弹出创建插件对话框
3 填写名称、编码、类型、描述 表单字段正确
4 提交创建 对话框关闭,列表刷新,新插件出现

4.2 插件生命周期

步骤 操作 预期结果
1 鼠标悬停插件卡片 出现启用/禁用开关和更多操作菜单
2 切换启用/禁用开关 状态切换成功,卡片状态标签更新
3 点击更多菜单 → 卸载 弹出确认弹窗
4 确认卸载 插件状态变为未安装
5 再次安装 插件状态恢复

4.3 插件测试

步骤 操作 预期结果
1 进入插件详情 → 打开测试抽屉 显示 JSON 输入框和超时配置
2 输入测试数据,点击"执行测试" 测试执行,显示结果
3 查看测试结果 显示状态(成功/失败)、耗时、错误码
4 切换到"测试历史" tab 显示历史测试记录列表

4.4 版本管理

步骤 操作 预期结果
1 进入插件详情 → 打开版本历史 显示版本时间线
2 查看版本列表 显示版本号、状态、创建时间
3 点击回滚按钮 弹出确认,确认后版本回滚

五、模型批量操作(任务 7)

测试入口

模型列表页 → 勾选多个模型

测试步骤

步骤 操作 预期结果
1 进入模型列表页 显示模型列表
2 勾选 2-3 个模型 出现批量操作栏
3 点击"批量禁用" 选中的模型状态变为禁用
4 勾选模型 → 点击"批量删除" 弹出确认弹窗
5 确认删除 选中的模型被删除,列表刷新

验证要点

  • 未勾选时批量操作按钮禁用
  • 勾选数量正确显示
  • 批量操作有确认提示
  • 操作后列表正确刷新

六、SSO 统一认证(任务 8.5)

测试入口

登录页 → SSO 登录按钮(需配置真实 SSO 服务端)

测试步骤

步骤 操作 预期结果
1 访问登录页 页面正常渲染
2 点击 SSO 登录(如已配置) 跳转到 SSO 授权页
3 SSO 授权完成 回调到平台,自动登录

API 验证

# 获取 SSO 授权 URL
curl -s http://127.0.0.1:8080/admin/api/sso/authorize | python -m json.tool

七、用户组批量授权(任务 11)

测试入口

系统管理 → 用户组管理(/system/chat/group

测试步骤

步骤 操作 预期结果
1 进入用户组管理页 显示用户组列表
2 创建新用户组 输入名称,提交成功
3 进入用户组详情 显示成员列表和授权列表
4 批量添加成员 选择用户,添加成功
5 批量移除成员 选择成员,移除成功
6 批量授权资源 选择资源类型和 ID,授权成功
7 批量撤销授权 选择授权记录,撤销成功

API 验证

# 获取用户组列表
curl -H "Authorization: Bearer YOUR_TOKEN" \
  http://127.0.0.1:8080/admin/api/workspace/default/user_group

# 创建用户组
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"测试用户组"}' \
  http://127.0.0.1:8080/admin/api/workspace/default/user_group/create

八、智能体记忆(任务 2)

测试入口

智能体设置 → 记忆配置

测试步骤

步骤 操作 预期结果
1 创建或编辑智能体 进入设置页面
2 开启记忆功能 记忆配置区域展开
3 添加记忆条目 输入内容、选择类型,保存成功
4 对话测试 多轮对话后,智能体能引用历史记忆
5 禁用某条记忆 记忆状态切换,对话中不再引用

九、专业知识库(任务 1)

测试入口

知识库列表 → 创建专业知识库

测试步骤

步骤 操作 预期结果
1 点击创建知识库 选择知识库类型
2 选择"专业知识库" 显示样本中心配置表单
3 填写样本中心连接信息 输入 base_url、app_id、app_secret
4 获取知识库列表 从样本中心拉取知识库列表
5 选择知识库导入 提交导入任务
6 查看导入进度 显示任务状态和进度
7 导入完成后检索 知识库可正常检索

十、智能体发布权限(任务 3)

测试入口

应用概览页 → 访问限制按钮

测试步骤

步骤 操作 预期结果
1 进入应用概览页 → 点击"访问限制" 弹出权限配置对话框
2 开启白名单 输入 IP 列表,保存
3 使用白名单内 IP 访问 正常响应
4 使用白名单外 IP 访问 被拒绝
5 配置嵌入参数 复制嵌入代码
6 在网页中嵌入测试 智能体正常加载

问题记录

序号 模块 问题描述 严重程度 状态
1
2
3

测试环境信息

项目
平台版本 ZhAgentOS 2.0
浏览器 Chrome 最新版
操作系统 Windows 11
Docker 版本
数据库 PostgreSQL 16 + pgvector