Skip to content

FNOS-018 测试用例 ​

字段内容
需求编号FNOS-018
关联需求FNOS-018 Midscene 桥接使用说明准确性修正
关联计划PLAN-FNOS-018 Midscene 桥接使用说明准确性修正
测试状态通过(9 条全部通过)

测试范围与需求分析 ​

覆盖 功能列表 中 FNOS-018-01 至 FNOS-018-04。

这类「文档缺陷」的测试有个特殊难点:文本看起来合理不代表能跑通。因此用例分两层:

  • 内容层:断言说明里出现了正确写法、且不再出现错误写法(可自动化、防回归)。
  • 执行层:把说明里的示例原样跑一遍,看实际结果(必须真机,无法 mock)。

只做内容层会漏掉「写对了但跑不通」;只做执行层则无法防后续回归。

第二个难点是「静默」的判定:它不是可读的属性,只能通过 getBrowserTabList() 的 currentActiveTab 字段观察连接前后是否变化。

❓ 待核实项:上游 SDK 后续版本若改名(activateTab → 其它),本说明需同步;用例中的版本标注用于暴露这种漂移。

测试环境 ​

功能目标环境
FNOS-018-01本地 + 真实 Chrome(Bridge 模式)
FNOS-018-02、FNOS-018-03本地命令行(运行中的桥 + 视觉查询)
FNOS-018-04本地构测环境

版本基线:@midscene/web v1.16.0(CLI 侧)/ v1.15.0(浏览器扩展侧);桥端口以 /v1/health 的 port 为准。

测试用例 ​

FNOS-018-01 静默连接写法修正 ​

用例ID功能点测试标题关联验收前置条件测试步骤预期结果优先级基线来源
TC-001FNOS-018-01说明中的静默示例可原样执行AC-01Chrome 已装扩展并完成桥配置;存在目标标签页1.按说明原样执行示例 2.观察是否抛错不抛错,成功连到目标标签页P0缺陷场景
TC-002FNOS-018-01连接不改变用户前台标签页AC-02用户当前正看着某个标签页1.记录连接前 currentActiveTab 2.执行连接 3.再读一次两次 currentActiveTab 相同P0缺陷场景
TC-003FNOS-018-01说明保留 id 必须传数字AC-03—检查说明文本仍写明 id 传数字并说明原因(字符串会触发 tabs.update 签名错)P1实测结论

FNOS-018-02 Bridge 能力边界写明 ​

用例ID功能点测试标题关联验收前置条件测试步骤预期结果优先级基线来源
TC-004FNOS-018-02说明明确不支持 evaluateAC-01—检查说明文本写明 Bridge 模式无 evaluate,且其返回值为 undefined 不报错P0实测结论
TC-005FNOS-018-02替代取证路径可用AC-02桥运行中1.按说明用视觉 Agent 查询页面 2.按说明从目标环境日志核对两种方式都能得到可断言的结果P0实测结论

FNOS-018-03 SDK 路径 .env 加载 ​

用例ID功能点测试标题关联验收前置条件测试步骤预期结果优先级基线来源
TC-006FNOS-018-03说明区分 CLI 与 SDKAC-01—检查说明文本明确指出 CLI 自动加载当前目录 .env,SDK 不加载P1实测结论
TC-007FNOS-018-03SDK 注入写法可用AC-02已取到四行配置1.按说明把四行注入进程环境 2.执行 aiQuery返回结果,不报 MIDSCENE_MODEL_NAME is requiredP0缺陷场景

FNOS-018-04 桥接口说明保持准确 ​

用例ID功能点测试标题关联验收前置条件测试步骤预期结果优先级基线来源
TC-008FNOS-018-04桥接口字段与说明一致AC-01桥运行中1.请求 /v1/health 与 /v1/midscene-env 2.对照说明port/fixedModelName/family 存在;env 恰为四行非注释内容P2实测结论
TC-009FNOS-018-04两处文案同时更新——断言 BRIDGE_PRELUDE 与 SKILL.md 都含新写法、都不含 activate: false两处一致,无残留旧写法P0回归要求

测试执行结果 ​

用例范围总数通过失败阻塞未执行
TC-001~TC-003(FNOS-018-01)33000
TC-004~TC-005(FNOS-018-02)22000
TC-006~TC-007(FNOS-018-03)22000
TC-008~TC-009(FNOS-018-04)22000
合计99000

Bug 记录 ​

Bug ID关联用例现象根因状态
BUG-01TC-001、TC-002按说明写 setActiveTabId(id, { activate: false }),不报错但静默开关无效setActiveTabId 只接受一个参数,第二参数被静默忽略;静默字段实际是 connectCurrentTab 的 activateTab已修复:说明改为单步 connectCurrentTab({ activateTab: false })
BUG-02TC-001按初版修复方案写「先 setActiveTabId 再 connectCurrentTab」,报 Active tab id is already set已连接状态下再设同一 tab 被拒绝;两者不是可串联的两步,connectCurrentTab 本身就完成连接已修复:说明改为单步写法,并明确劝阻两步式
BUG-03TC-005用 agent.page.evaluate(...) 取页面数据返回 undefined,不抛错Bridge 模式的类型声明里没有 evaluate,调用静默失败已修复:说明写明该限制并给出三条替代取证路径
BUG-04TC-007把四行写进运行目录 .env 后 aiQuery 仍报 MIDSCENE_MODEL_NAME is requiredCLI 路径才自动加载当前目录 .env,SDK 路径需注入进程环境已修复:说明区分两种加载方式并给出注入命令

测试结论 ​

9 条用例全部通过。

内容层(TC-003、TC-004、TC-006、TC-008)与执行层(TC-001、TC-002、TC-005、TC-007)均成立,TC-009 确认 BRIDGE_PRELUDE 与 SKILL.md 两处说法一致。

实测数据:修正后的静默连接不抛错,连接前后 currentActiveTab 均为 http://127.0.0.1:3080/(用户前台标签页未被夺走);视觉查询正常返回「适配 v0.2.1-rc.2 插件升级」。

过程中发现的额外缺陷:按需求阶段的分析,原本只登记了三处不符。实测修正后的写法时又暴露了第四处——「先 setActiveTabId 再 connectCurrentTab」的两步式组合会报 Active tab id is already set,两个调用不可串联。这说明这类文档缺陷无法靠通读发现,必须逐段执行验证;已作为 BUG-02 登记。

上游 7 个技能文件保持逐字节一致(SOURCE.md 哈希用例通过),本次修改只落在插件自有的 dsh-midscene 技能与 BRIDGE_PRELUDE。

基于 VitePress 构建