Skip to content

FNOS-001 真实环境验收记录(fnos-mi,2026-10-20) ​

本记录是 FNOS-001 1Panel 应用商店应用转换 在 fnos-mi 设备上的目标环境验收记录,用例定义见 FNOS-001 1Panel 应用转换测试用例,格式规范见 真实环境验收记录。

前序记录:FNOS-001 真实环境验收记录(2026-10-09), 该轮因设备端 appcenter-cli 权限阻塞而停在部分 AC。

0. 本轮与前序记录的关键差异 ​

维度2026-10-09(fnos-nas)2026-10-20(fnos-mi)
验证通道设备端 trim-cli / appcenter-cliMidscene 驱动 fnOS Web UI(appcenter-cli 仍不可用)
设备地址$$
可执行动作安装、启停安装、启停、卸载向导、端口占用场景、入口地址核验
覆盖 AC04-AC-02 通过、04-AC-03 部分通过04-AC-02 / 04-AC-03 / 04-AC-05 / 04-AC-06 通过

为什么换通道:appcenter-cli 在目标设备上启动即 panic (ApplyPermission for '[com.trim.sysinfo com.trim.main]' error, dial unix /run/trim_app_cgi/rpcbroker: connect: permission denied), 设备端安装链路整体不可用;而 fnOS 应用中心的手动安装功能在 Web UI 上完全可用, 因此改用 Midscene 复用已登录的 Chrome 驱动 UI 完成同一批验收动作。

1. 设备架构、用户角色、安装方式和前置配置 ​

项值状态
设备名称fnos-mi已采集
设备地址http://${FNOS_HOST}:5666/已采集
设备架构x86已采集(FnDepot → 系统信息)
fnOS 系统版本1.2.0800已采集(FnDepot → 系统信息)
执行用户角色浏览器已登录的管理员会话已采集
验证通道Midscene @midscene/web Bridge 模式(复用用户 Chrome)已采集
安装方式应用中心 → 手动安装 → 从电脑上传 .fpk已执行
存储空间存储空间1 53.82 GB、存储空间2 464.91 GB已采集
前置配置无额外依赖(fn-it-tools / fn-web-check 均为单容器无状态应用)已就绪

被测应用:

应用目录说明
fn-it-toolsapps/fn-it-tools/T0 试点应用,端口 40116(向导默认值)
fn-web-checkapps/fn-web-check/仅用于构造端口占用场景,装后即卸载

2. 操作步骤、预期结果和实际结果 ​

FNOS-001-04-AC-02:安装与入口 ​

步骤预期结果实际结果状态
本地 fnpack build 产出 fn-it-tools.fpk打包成功成功,19,833 字节通过
应用中心 → 手动安装 → 从电脑上传 .fpk识别出应用并进入安全提示弹窗显示「IT-Tools 由 未知发布者 提供,未经飞牛验证」通过
同意 → 端口配置向导展示端口字段与取值范围「Web 访问端口 *」= 40116,提示「取值范围 1—65535」通过
下一步 → 安装安装完成进度条至 100%,弹窗关闭通过
应用中心 → 已安装应用卡片存在且状态正确IT-Tools 卡片按钮显示「打开」(= 运行中)通过
桌面出现桌面入口图标桌面出现「IT-Tools」图标通过
点击「打开」应用界面可正常加载IT-Tools 完整渲染(Crypto / Converter 工具均可用)通过

FNOS-001-04-AC-05:入口跟随向导端口 ​

步骤预期结果实际结果状态
读取打开后的标签页地址地址端口 = 向导填写的端口http://${FNOS_HOST}:40116/,与向导端口 40116 一致通过
独立复核该地址返回应用页面HTTP 200,<title>IT Tools - Handy online tools for developers</title>通过

FNOS-001-04-AC-06:端口占用处理 ​

场景构造:先让 fn-it-tools 占用 40116,再把 fn-web-check 的向导端口改为 40116。

步骤预期结果实际结果状态
fn-web-check 手动安装 → 同意 → 端口配置进入端口向导「安装 Web-Check – 基础配置」,默认端口 40095通过
将端口改为 40116 并「下一步」允许进入安装(向导静态校验不判定运行时占用)未在表单阶段拦截,进入安装流程通过(符合设计)
安装完成 → 应用中心「已安装」不得出现「显示运行中但实际不可访问」Web-Check 卡片按钮显示「启用」= 未运行;同列表 IT-Tools 显示「打开」= 运行中通过
应用详情页状态与列表一致Web-Check 详情:版本 6.0.0、来源「手动安装」、按钮为「启用」通过

结论:AC-06 的两条通过路径中命中第二条——「安装后 cmd/main status 返回非 0 使应用中心显示未运行」。 硬性红线(安装成功且显示运行中但实际不可访问)未触碰。

FNOS-001-04-AC-03 / AC-07:卸载向导与入口形态 ​

步骤预期结果实际结果状态
Web-Check → 卸载进入卸载向导先弹系统确认「确定要卸载此应用吗?」通过
确认后卸载向导提供「保留数据 / 删除所有数据」二选一,默认保留「卸载 Web-Check – 确认卸载」,数据保留选项为单选:保留数据(推荐)– 将来重新安装时可恢复(默认选中)/ 删除所有数据 – 此操作不可恢复!通过
选择「删除所有数据」并卸载卸载完成、数据清理页面显示「该应用未上架或已被卸载」;存储空间1 由 19.19 GB 回落至 17.82 GB通过

卸载向导的「保留数据 / 删除所有数据」二选一与默认保留,符合需求「行为约束」中的卸载要求。

测试结束后的设备清理 ​

验收完成后,测试应用通过 midscene 在应用中心 UI 内交互卸载,设备恢复原状:

步骤预期结果实际结果状态
应用中心 → 已安装 → IT-Tools → 卸载进入系统确认弹窗「确定要卸载此应用吗? IT-Tools」通过
确认后卸载向导提供数据保留二选一「卸载 IT-Tools – 确认卸载」,保留数据(推荐)/ 删除所有数据,默认保留通过
选「删除所有数据」并卸载卸载完成「该应用未上架或已被卸载」;桌面 IT-Tools 图标消失通过
独立复核端口40116 不再服务curl http://${FNOS_HOST}:40116/ → HTTP 000(连接失败),端口已释放通过
应用中心「已安装」列表无本轮新增应用列表中无 IT-Tools、无 Web-Check通过

fn-web-check 在 04-AC-06 场景验证后即已卸载(选择「删除所有数据」),本节补充卸载 fn-it-tools。 至此本轮在 fnos-mi 上安装的两个应用全部清理完毕,设备回到本轮开始前的应用集合。

未执行项(不判通过) ​

项原因
04-AC-03「保留数据后重装能读回原有数据」本轮卸载选择的是「删除所有数据」,保留数据分支未走;且 fn-it-tools/fn-web-check 均为无状态应用,本轮不产生可读回的业务数据
05-AC-01 数据落盘与容器重建本轮两个被测应用均无持久化卷,未覆盖
06-AC-01 数据库连接信息与失败提示本轮未涉及需要外部数据库的应用
04-AC-07 入口键长度/前缀硬校验属打包期校验,由 fnpack build 覆盖(两包均构建通过),真机侧只观察入口可打开

3. 日志、截图、失败复现或外部链接 ​

  • 截图证据目录:仓库外 /tmp/midscene-fn/shots/,关键帧如下(未提交二进制):

    截图观察内容
    manual-install-dialog.jpeg手动安装弹窗:存储空间 2、377.44 GB 可用、「从电脑上传 / 从 NAS 添加」
    after-upload.jpeg安全提示:IT-Tools,未经验证应用
    install-wizard.jpeg端口配置向导,默认 40116
    install-done.jpeg安装进度与完成
    installed-list.jpeg已安装列表,IT-Tools 显示「打开」
    app-entry.jpegIT-Tools 完整渲染
    webcheck-wizard.jpegWeb-Check 基础配置向导,默认 40095
    port-conflict-input.jpeg端口改为 40116(占用中)
    installed-after-conflict.jpegWeb-Check 显示「启用」= 未运行;IT-Tools 显示「打开」= 运行中
    uninstall-wizard.jpeg卸载向导:保留数据 / 删除所有数据二选一,默认保留
    uninstall-final.jpegWeb-Check 卸载完成
    before-uninstall.jpeg清理前桌面:IT-Tools 图标在位
    installed-before-remove.jpeg清理前「已安装」列表:IT-Tools 显示「打开」
    itools-uninstall-confirm.jpegIT-Tools 卸载系统确认弹窗
    itools-uninstall-wizard.jpeg「卸载 IT-Tools – 确认卸载」向导,数据保留二选一
    itools-uninstall-final.jpegIT-Tools 卸载完成,桌面图标消失
    installed-after-remove.jpeg清理后「已安装」列表:无 IT-Tools、无 Web-Check
  • 命令输出:

    text
    # 卸载前:入口可访问
    $ curl -s -o /dev/null -w "%{http_code}\n" http://${FNOS_HOST}:40116/
    200
    $ curl -s http://${FNOS_HOST}:40116/ | grep -o "<title>[^<]*</title>"
    <title>IT Tools - Handy online tools for developers</title>
    
    # 卸载后:端口已释放
    $ curl -s -o /dev/null -w "%{http_code}\n" http://${FNOS_HOST}:40116/
    000
  • Midscene 行为报告(HTML,含逐步截图与定位结果)位于本地临时目录 ~/.npm/_npx/<hash>/midscene_run/report/,不入库。

4. 遗留问题、回滚方式和下一步 ​

遗留问题

编号内容等级
R-01设备端 appcenter-cli 仍不可用(rpcbroker 权限),本轮无法用 CLI 复核容器日志与 cmd/main status 返回值。AC-06 目前由界面状态反推,未取得 status 退出码的直接证据。中
R-02端口占用场景的「另一侧」证据不足:只验证了「Web-Check 未运行」,未验证「访问 40116 命中的是 IT-Tools 而非 Web-Check」以外的反证(如容器端口映射检查)。低
R-03本轮只覆盖 T0 批次的两个应用;T1/T2 的 185 个应用仍无真机结论。高

回滚方式

  • 本轮在 fnos-mi 上产生过两处设备变更(安装 fn-it-tools、安装 fn-web-check), 均已在验收结束后通过应用中心 UI 卸载并选择「删除所有数据」,设备已恢复原状。 若后续需要重做,安装包需重新 fnpack build 产出(.fpk 不入库)。
  • 仓库侧无代码变更,不涉及回滚。

下一步

  1. 用同一通道补测 05-AC-01(挑一个 T1 有状态应用,如 fn-qinglong)与 06-AC-01(挑一个 T2 应用)。
  2. 补 AC-06 的反证:检查 docker inspect 的端口映射,确认 40116 只被 IT-Tools 占用。
  3. 把「端口占用 → 应用中心显示未运行」固化为可复用用例,避免以后只凭安装成功判通过。

5. 验收人和最终结论 ​

项值
验证通道Midscene @midscene/web 1.15.4(Bridge 模式,DSH 本地模型桥 8787)
验证设备fnos-mi,${FNOS_HOST},fnOS 1.2.0800,x86_64
验证日期2026-10-20
覆盖应用fn-it-tools(安装 + 入口 + 正常运行 + 卸载)、fn-web-check(端口占用 + 卸载向导);两者均已卸载,设备已恢复原状
通过的 AC04-AC-02、04-AC-03(卸载分支)、04-AC-05、04-AC-06、04-AC-07(打包期)
未执行的 AC04-AC-03(保留数据分支)、05-AC-01、06-AC-01
最终结论本轮命中的 AC 全部通过;未执行的 AC 保持「未执行」,不因安装成功而判通过。 T0 批次整体仍不得标记为已完成。

设备当前状态声明:本轮结束后,本轮安装的两个应用(fn-it-tools、fn-web-check)均已通过 应用中心 UI 交互卸载并选择「删除所有数据」:fn-it-tools 桌面图标已消失、40116 端口已释放 (curl 返回 HTTP 000)、应用中心「已安装」列表中不再有这两个应用。设备其余应用与存储空间 占用未被本轮改动。

基于 VitePress 构建