测试文档.md 25 KB

功能测试文档

测试说明

本文档为四川路桥 Maas 智能体平台 v1.0 的完整功能测试用例,供测试人员逐项执行验证。

测试前准备

  1. 平台已部署完成,可通过浏览器正常访问
  2. 管理员账号:admin / admin123(或部署时设置的密码)
  3. AI 模型 API Key:至少准备一个可用的 LLM 模型 Key(推荐 DeepSeek)和一个 Embedding 模型 Key
  4. 测试文档:准备 2-3 个测试文件(txt/pdf/docx 格式,内容已知,方便验证检索结果)
  5. SSO 环境(如需测试 SSO):确认 SSO 服务可用,已配置好回调地址
  6. 样本中心环境(如需测试):确认样本中心服务可用,有 App ID 和 Secret

测试地址

http://<部署服务器IP>/admin/


一、登录与认证模块

TC-1.1 账号密码登录(正常流程)

前置条件: 未登录状态

步骤 操作 预期结果
1 打开平台地址 显示登录页面,页面标题显示平台名称
2 确认页面元素 包含:用户名输入框、密码输入框、验证码输入框、验证码图片、登录按钮、SSO 登录按钮
3 输入正确用户名 admin -
4 输入正确密码 admin123 -
5 输入验证码图片中显示的字符 -
6 点击"登录"按钮 登录成功,页面跳转到智能体列表页,左上角显示平台名称

TC-1.2 登录异常场景

步骤 操作 预期结果
1 输入正确用户名,错误密码,正确验证码,点击登录 提示"用户名或密码错误",不跳转
2 输入不存在的用户名,点击登录 提示"用户名或密码错误"
3 不输入验证码,点击登录 表单校验提示验证码必填
4 输入错误验证码,点击登录 提示验证码错误,验证码图片刷新
5 所有字段为空,点击登录 表单校验提示各字段必填
6 点击验证码图片 验证码刷新为新的图片

TC-1.3 SSO 单点登录

前置条件: SSO 服务已配置且可用

步骤 操作 预期结果
1 在登录页点击"统一认证登录 (SSO)"按钮 浏览器跳转到 SSO 认证平台的登录页面
2 在 SSO 页面输入 SSO 账号密码,完成登录 SSO 认证成功,浏览器回调到平台
3 观察回调后的页面 自动登录成功,跳转到智能体列表页
4 首次 SSO 登录的用户 系统自动创建本地用户,角色根据 SSO 返回的角色信息映射

TC-1.4 退出登录

步骤 操作 预期结果
1 已登录状态,点击右上角用户头像 弹出下拉菜单
2 点击"退出登录" 跳转到登录页面
3 退出后,直接在地址栏输入平台内页地址 自动跳转到登录页(Token 已清除)
4 退出后,点击浏览器后退按钮 不能回到已登录的页面

TC-1.5 Token 过期

步骤 操作 预期结果
1 登录后等待 Token 过期(默认 8 小时,可调短测试) -
2 过期后点击页面中的任意操作 自动跳转到登录页,提示需要重新登录

二、模型管理模块

TC-2.1 查看模型列表

步骤 操作 预期结果
1 点击顶部导航栏"模型" 进入模型管理页面
2 查看页面内容 左侧显示模型提供商列表(OpenAI、DeepSeek、通义千问等),右侧显示已添加的模型

TC-2.2 添加 LLM 模型

步骤 操作 预期结果
1 在模型提供商列表中选择一个(如 DeepSeek) 弹出模型配置对话框
2 填写 API Key(使用有效的 Key) -
3 填写 API 地址(如有自定义地址) -
4 点击"获取模型"或选择模型 显示该提供商可用的模型列表
5 勾选需要的模型(如 deepseek-chat) -
6 点击"添加" 模型添加成功,列表中显示新模型,状态为绿色"可用"

TC-2.3 添加 Embedding 模型

步骤 操作 预期结果
1 选择支持 Embedding 的提供商 弹出配置对话框
2 填写 API Key -
3 选择 Embedding 类型的模型 -
4 点击添加 Embedding 模型添加成功(后续创建知识库时需要)

TC-2.4 模型异常场景

步骤 操作 预期结果
1 使用无效的 API Key 添加模型 模型状态显示红色"不可用"
2 删除一个已被智能体使用的模型 提示该模型正在被使用,确认是否删除
3 编辑模型,修改为无效 Key 模型状态变为"不可用"

三、知识库模块

TC-3.1 创建通用知识库

前置条件: 已添加至少一个 Embedding 模型

步骤 操作 预期结果
1 点击顶部导航"知识库" 进入知识库列表页
2 点击右上角"创建"按钮 弹出下拉菜单,显示多种知识库类型
3 选择"通用知识库" 弹出创建对话框
4 输入知识库名称(如"测试知识库") -
5 输入描述(可选) -
6 在"向量模型"下拉中选择已添加的 Embedding 模型 下拉列表显示可用模型
7 点击"创建" 创建成功,自动跳转到该知识库的文档管理页

TC-3.2 上传文档

前置条件: 已创建知识库

步骤 操作 预期结果
1 在知识库文档页,点击"上传文档" 跳转到文档上传页面
2 点击选择文件或拖拽文件到上传区域 文件出现在待上传列表中
3 上传一个 txt 文件 文件显示在列表中
4 上传一个 pdf 文件 文件显示在列表中
5 上传一个 docx 文件 文件显示在列表中
6 查看分段预览(如有) 显示文档将被切分的段落预览
7 点击"开始上传"或"确认" 上传成功,返回文档列表页
8 查看文档状态 初始显示"向量化中",等待后变为"已完成"

TC-3.3 文档段落管理

步骤 操作 预期结果
1 在文档列表中点击某个文档名称 进入段落列表页,显示该文档的所有段落
2 查看段落内容 每个段落显示文本内容、字符数、状态
3 点击某个段落的"编辑" 可修改段落内容
4 修改内容后保存 保存成功,内容更新
5 点击"新增段落" 可添加新的段落
6 填写内容后保存 新段落出现在列表中
7 选中一个段落,点击"删除" 确认后段落删除
8 切换段落的"启用/禁用"状态 禁用的段落不参与检索

TC-3.4 命中测试

前置条件: 知识库中有已向量化完成的文档

步骤 操作 预期结果
1 在知识库中找到"命中测试"功能入口 进入命中测试页面
2 在输入框中输入一个与文档内容相关的问题 -
3 点击"测试"按钮 返回匹配的段落列表
4 查看结果 每条结果显示:段落内容、相似度分数、所属文档
5 修改"相似度阈值"为更高的值(如 0.8) 结果数量减少(只保留高相似度的)
6 修改"Top N"为 1 只返回最匹配的 1 条结果
7 切换搜索模式为"关键词检索" 使用关键词匹配,结果可能不同
8 切换搜索模式为"混合检索" 综合向量和关键词的结果
9 输入一个与文档完全无关的问题 返回空结果或相似度很低的结果

TC-3.5 知识库管理操作

步骤 操作 预期结果
1 在知识库列表中,点击某个知识库的"编辑" 可修改名称和描述
2 修改后保存 保存成功
3 选中文档 → 点击"向量化" 重新向量化任务启动
4 选中文档 → 点击"删除" 确认后文档删除
5 删除整个知识库 确认后知识库及所有文档、段落全部删除

TC-3.6 样本中心知识库

前置条件: 样本中心服务可用

步骤 操作 预期结果
1 创建 → 选择"样本中心知识库" 弹出连接配置对话框(步骤一)
2 填写 API 地址 -
3 填写 App ID -
4 填写 App Secret -
5 点击"连接" 连接成功,进入步骤二,显示样本中心的知识库列表
6 连接失败场景:填写错误的地址或密钥 提示连接失败
7 在列表中选择一个知识库,点击"选择" 进入步骤三,显示创建表单
8 确认知识库名称(默认为样本中心知识库名称) -
9 选择向量模型 -
10 点击"创建" 本地知识库创建成功,跳转到文档页
11 上传文档到该知识库 上传成功(与普通知识库相同)
12 选中文档 → 点击"推送到样本中心" 弹出推送确认对话框
13 确认目标知识库信息,点击"确认推送" 任务提交成功,显示进度信息
14 观察任务进度 状态从"等待处理"→"处理中"→"已完成"
15 任务完成后查看结果 显示成功条数和失败条数

四、智能体模块

TC-4.1 创建简单智能体

前置条件: 已添加至少一个 LLM 模型

步骤 操作 预期结果
1 点击顶部导航"智能体" 进入智能体列表页
2 点击"创建" 弹出创建对话框
3 选择"简易模式" -
4 输入智能体名称(如"测试助手") -
5 选择 AI 模型 下拉显示已添加的 LLM 模型
6 点击"创建" 创建成功,进入智能体设置页
7 在"系统提示词"中输入提示词(如"你是一个友好的助手") -
8 点击保存 保存成功

TC-4.2 智能体关联知识库

前置条件: 已创建知识库且有已向量化的文档

步骤 操作 预期结果
1 在智能体设置页,找到"知识库"配置区域 -
2 点击"添加知识库" 弹出知识库选择列表
3 勾选要关联的知识库 -
4 确认 知识库关联成功,显示在配置中
5 保存智能体设置 保存成功

TC-4.3 智能体对话调试

步骤 操作 预期结果
1 在智能体页面点击"调试"按钮 打开对话调试窗口
2 输入"你好" 智能体正常回复问候
3 输入与知识库内容相关的问题 回复中引用了知识库的内容
4 查看回复中的"来源"标记 显示引用的段落来源
5 连续发送多条消息 上下文连贯,智能体记住之前的对话
6 点击"新建对话" 清空历史,开始全新对话
7 查看左侧对话历史列表 显示之前的对话记录

TC-4.4 创建高级智能体(工作流模式)

步骤 操作 预期结果
1 创建智能体 → 选择"工作流模式" 创建成功,进入工作流可视化编辑器
2 查看默认工作流 画布上显示默认节点(开始→AI对话→直接回复)
3 点击"AI 对话"节点 右侧弹出节点配置面板
4 选择模型、填写提示词 -
5 保存节点配置 配置保存成功
6 从左侧节点面板拖拽"知识库检索"节点到画布 节点出现在画布上
7 删除原有连线,重新连接:开始→知识库检索→AI对话→直接回复 连线成功
8 配置"知识库检索"节点(选择知识库) 配置保存
9 点击右上角"调试" 打开调试对话窗口
10 发送一条消息 工作流按顺序执行,返回结果
11 查看执行详情 显示每个节点的输入、输出、耗时

TC-4.5 工作流节点测试

步骤 操作 预期结果
1 添加"条件判断"节点 节点添加成功,可配置条件
2 添加"工具调用"节点 节点添加成功,可选择工具
3 添加"参数提取"节点 节点添加成功,可配置提取规则
4 删除一个节点 节点及其连线删除
5 撤销操作 恢复删除的节点
6 保存工作流 保存成功

TC-4.6 智能体发布

步骤 操作 预期结果
1 进入智能体 → "概览"页面 显示发布配置
2 开启"公开访问"开关 生成公开访问链接
3 复制链接,在新的浏览器窗口(未登录状态)打开 显示对话界面,可正常发送消息和接收回复
4 设置"访问次数限制"为 5 保存成功
5 在公开链接中发送超过 5 次消息 第 6 次提示访问次数已用完
6 开启"白名单",添加一个 IP 地址 保存成功
7 从非白名单 IP 访问公开链接 拒绝访问
8 关闭"公开访问"开关 公开链接不再可用

TC-4.7 智能体版本管理

步骤 操作 预期结果
1 修改工作流后点击"发布" 弹出发布确认,创建新版本
2 再次修改工作流并发布 又创建一个新版本
3 查看版本列表 显示所有历史版本及发布时间
4 选择一个历史版本,点击"回滚" 工作流恢复到该版本的状态

五、工具管理模块

TC-5.1 创建自定义工具

步骤 操作 预期结果
1 点击顶部导航"工具" 进入工具列表页
2 点击"创建" → "自定义工具" 弹出工具编辑对话框
3 输入工具名称(如"获取当前时间") -
4 输入工具描述 -
5 在代码编辑器中编写 Python 代码 如:import datetime; return {"time": str(datetime.datetime.now())}
6 定义输入参数(如无参数可跳过) -
7 点击"调试" 弹出调试面板
8 点击"执行" 返回当前时间,执行成功
9 点击"保存" 工具保存成功,出现在列表中

TC-5.2 工具在智能体中使用

步骤 操作 预期结果
1 进入一个智能体的设置页 -
2 在"工具"配置区域,点击添加 弹出工具选择列表
3 勾选刚创建的工具 -
4 保存 工具关联成功
5 在对话中问"现在几点了" 智能体调用工具,返回当前时间

TC-5.3 MCP 工具

步骤 操作 预期结果
1 创建 → "MCP 工具" 弹出 MCP 配置对话框
2 填写 MCP 服务地址和配置 -
3 测试连接 显示连接状态(成功/失败)
4 保存 MCP 工具添加成功

TC-5.4 工具管理操作

步骤 操作 预期结果
1 编辑已有工具的代码 修改保存成功
2 删除工具 确认后删除成功
3 启用/禁用工具 状态切换成功

六、触发器模块

TC-6.1 访问触发器页面

步骤 操作 预期结果
1 点击右上角的触发器图标(闪电图标) 进入触发器管理页面
2 查看页面 显示触发器列表(可能为空)

TC-6.2 创建定时触发器

步骤 操作 预期结果
1 点击"创建" 弹出创建对话框
2 选择"定时触发" 显示定时配置选项
3 选择关联的智能体或工具 -
4 配置执行周期(如"每 5 分钟执行一次") -
5 配置输入参数(如有) -
6 点击保存 触发器创建成功,状态为"启用"
7 等待触发时间到达 触发器自动执行
8 查看执行记录 显示执行时间、状态(成功/失败)、执行结果

TC-6.3 创建事件触发器(Webhook)

步骤 操作 预期结果
1 创建 → 选择"事件触发" 显示事件配置选项
2 选择关联的智能体或工具 -
3 保存 创建成功,页面显示生成的 Webhook URL
4 复制 Webhook URL -
5 使用 Postman 或 curl 向该 URL 发送 POST 请求 触发器被触发执行
6 查看执行记录 显示本次触发的执行记录

TC-6.4 触发器管理

步骤 操作 预期结果
1 禁用一个触发器 状态变为"禁用"
2 禁用后等待触发时间 不再自动执行
3 重新启用 状态变为"启用",恢复执行
4 编辑触发器配置 修改保存成功
5 删除触发器 确认后删除成功
6 批量选中多个触发器 → 批量删除 批量删除成功

七、系统管理模块

TC-7.1 用户管理

步骤 操作 预期结果
1 点击右上角头像 → "系统管理" → "用户管理" 进入用户管理页面,显示用户列表
2 点击"创建用户" 弹出创建表单
3 填写用户名(如 testuser) -
4 填写密码 -
5 选择角色为"普通用户" -
6 点击确认 用户创建成功,列表中显示新用户
7 退出当前账号,用新用户登录 登录成功
8 新用户查看页面 只能看到被授权的资源(初始可能为空)
9 切回 admin 账号,编辑 testuser 的信息 修改成功
10 禁用 testuser 状态变为禁用
11 尝试用 testuser 登录 登录失败,提示账号已禁用
12 重新启用 testuser 可以正常登录
13 删除 testuser 确认后删除成功

TC-7.2 角色管理

步骤 操作 预期结果
1 进入"系统管理" → "角色管理" 显示角色列表
2 查看系统内置角色 包含:管理员、工作空间管理员、普通用户
3 查看各角色的权限说明 显示权限范围

TC-7.3 资源授权

步骤 操作 预期结果
1 进入"系统管理" → "资源授权" 显示资源授权页面
2 选择资源类型"知识库" 显示知识库资源列表
3 选择一个知识库,点击"授权" 弹出用户选择
4 选择 testuser,授予"查看"权限 授权成功
5 用 testuser 登录 能看到被授权的知识库
6 testuser 尝试删除该知识库 无权限,操作被拒绝
7 admin 取消 testuser 的授权 取消成功
8 testuser 刷新页面 该知识库不再显示

TC-7.4 修改密码

步骤 操作 预期结果
1 点击右上角头像 → "修改密码" 弹出修改密码对话框
2 输入旧密码 -
3 输入新密码和确认密码 -
4 点击确认 密码修改成功
5 退出后用新密码登录 登录成功
6 用旧密码登录 登录失败

八、插件管理模块

TC-8.1 创建插件

步骤 操作 预期结果
1 进入插件管理页面 显示插件列表
2 点击"创建插件" 弹出创建表单
3 填写插件名称(如"测试插件") -
4 填写插件编码(如"test_plugin",唯一标识) -
5 选择插件类型(工具插件/知识库插件/模型插件/自定义) -
6 填写描述 -
7 填写版本号(如"1.0.0") -
8 填写 Schema(JSON 格式的配置结构定义) -
9 点击确认 插件创建成功
10 尝试创建相同编码的插件 提示编码已存在

TC-8.2 插件生命周期管理

步骤 操作 预期结果
1 查看新创建的插件状态 状态为"未安装"
2 点击"安装" 状态变为"已启用"
3 点击"禁用" 状态变为"已禁用"
4 点击"启用" 状态恢复为"已启用"
5 点击"卸载" 状态变为"未安装"
6 点击"重装"(安装) 状态变为"已启用"

TC-8.3 插件版本管理

步骤 操作 预期结果
1 进入插件详情页 显示插件信息和版本列表
2 点击"创建新版本" 弹出版本创建表单
3 填写版本号(如"1.1.0")和更新日志 -
4 确认 新版本创建成功,插件当前版本更新
5 查看版本列表 显示 1.0.0 和 1.1.0 两个版本
6 选择 1.0.0 版本,点击"回滚" 插件配置恢复到 1.0.0 版本
7 确认当前版本号 显示为 1.0.0

TC-8.4 插件测试

步骤 操作 预期结果
1 在插件详情页点击"测试" 弹出测试执行面板
2 填写测试输入参数 -
3 点击"执行测试" 返回测试结果(通过/失败、耗时、输出数据)
4 查看测试历史 显示历史测试记录列表
5 点击某条记录查看详情 显示完整的输入、输出、错误信息

TC-8.5 Schema 验证

步骤 操作 预期结果
1 在插件创建/编辑时,填写无效的 Schema(如缺少必填字段) -
2 提交验证 返回具体的验证错误信息
3 修正 Schema 后重新提交 验证通过

九、对话功能模块

TC-9.1 基础对话

步骤 操作 预期结果
1 进入智能体调试页面 显示对话界面
2 发送"你好" 智能体回复问候语
3 发送一个知识性问题 智能体正常回答
4 观察回复过程 流式输出,逐字显示
5 发送多轮对话(引用上文内容) 智能体理解上下文,回复连贯

TC-9.2 知识库增强对话

前置条件: 智能体已关联知识库

步骤 操作 预期结果
1 发送与知识库文档内容直接相关的问题 回复引用知识库内容,可能显示来源标记
2 发送与知识库完全无关的问题 根据"无引用时"配置:AI 自行回答或提示无相关信息
3 发送模糊相关的问题 智能体综合知识库内容和自身能力回答

TC-9.3 对话历史

步骤 操作 预期结果
1 进行一段对话后,点击"新建对话" 开始新的对话,之前的对话保存
2 在左侧对话列表中点击之前的对话 恢复显示之前的对话内容
3 删除一条对话记录 确认后删除成功

TC-9.4 公开链接对话

步骤 操作 预期结果
1 获取智能体的公开访问链接 -
2 在无痕浏览器窗口打开链接 显示对话界面(无需登录)
3 发送消息 正常回复
4 刷新页面 对话历史保留(基于浏览器存储)

十、其他功能

TC-10.1 多语言切换

步骤 操作 预期结果
1 点击右上角语言切换(或登录页右上角) 显示语言选项
2 切换为"English" 界面文字变为英文
3 切换为"繁體中文" 界面文字变为繁体中文
4 切换回"简体中文" 界面恢复简体中文
5 刷新页面 语言设置保持不变

TC-10.2 文件夹管理

步骤 操作 预期结果
1 在知识库/智能体/工具列表页,点击"创建文件夹" 弹出文件夹命名对话框
2 输入文件夹名称,确认 文件夹创建成功
3 将资源拖拽或移动到文件夹中 移动成功
4 重命名文件夹 修改成功
5 删除空文件夹 删除成功

TC-10.3 平台名称配置验证

步骤 操作 预期结果
1 查看登录页标题 显示 .env 中配置的 APP_TITLE + APP_VERSION
2 查看浏览器标签页标题 显示前端 env 中配置的 VITE_APP_TITLE
3 登录后查看左上角 Logo 文字 显示 APP_TITLE + APP_VERSION

测试结果汇总

模块 用例数 通过 失败 阻塞 备注
一、登录认证 15
二、模型管理 9 需要有效 API Key
三、知识库 30 样本中心需对应环境
四、智能体 28 需要模型和知识库就绪
五、工具管理 12
六、触发器 13
七、系统管理 17
八、插件管理 15
九、对话功能 10
十、其他 8
合计 157

缺陷记录

编号 模块 用例编号 问题描述 复现步骤 严重程度 状态
BUG-001 致命/严重/一般/轻微 新建/已确认/已修复/已关闭

严重程度定义:

  • 致命:系统崩溃、数据丢失、核心功能完全不可用
  • 严重:核心功能异常、影响主流程、无法绕过
  • 一般:非核心功能异常、有替代方案可绕过
  • 轻微:UI 显示问题、文案错误、不影响功能使用