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-cli | Midscene 驱动 fnOS Web UI(appcenter-cli 仍不可用) |
| 设备地址 | $ | $ |
| 可执行动作 | 安装、启停 | 安装、启停、卸载向导、端口占用场景、入口地址核验 |
| 覆盖 AC | 04-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-tools | apps/fn-it-tools/ | T0 试点应用,端口 40116(向导默认值) |
fn-web-check | apps/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/ 000Midscene 行为报告(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不入库)。 - 仓库侧无代码变更,不涉及回滚。
下一步
- 用同一通道补测 05-AC-01(挑一个 T1 有状态应用,如
fn-qinglong)与 06-AC-01(挑一个 T2 应用)。 - 补 AC-06 的反证:检查
docker inspect的端口映射,确认 40116 只被 IT-Tools 占用。 - 把「端口占用 → 应用中心显示未运行」固化为可复用用例,避免以后只凭安装成功判通过。
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(端口占用 + 卸载向导);两者均已卸载,设备已恢复原状 |
| 通过的 AC | 04-AC-02、04-AC-03(卸载分支)、04-AC-05、04-AC-06、04-AC-07(打包期) |
| 未执行的 AC | 04-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)、应用中心「已安装」列表中不再有这两个应用。设备其余应用与存储空间 占用未被本轮改动。