--- name: artemis-device-test description: 用于家庭安防、移动看家或移动爱家的多工具自动化测试与测试环境部署。按需安装、检查和修复工具环境,联合 PC 配置工具、平台网站、视频分析、抓包、串口、安全工具与 Artemis Android 自动化,汇总实际用例证据。 --- # 家庭安防多工具自动化测试 由 Codex 根据用例选择工具;PC 脚本完成确定的采集、查询和分析,Artemis 完成手机或模拟器操作。覆盖全部工具的统一入口不意味着每个用例已实现全自动。把实际执行、测试结论、环境阻塞分别报告。 ## 入口与路由 首次部署或迁移电脑先读 [首次使用](START-HERE.md);安装、环境异常或工具不能调用时读 [环境安装与修复](references/environment-repair.md)。先发现已有环境,再按当前任务安装或修复所需项,并在修复后运行相应检查;不要为了执行一个用例重装整套工具。只需验证工具链时按 [试用验收](references/pilot-smoke.md) 选简单子项,阻塞记录后跳过。已有正常环境则直接进入用例。 1. 接收原用例编号/工作表/行号、预期、被测设备和本机环境配置。原表编号可能重复,使用 `sheet + row` 唯一定位;忽略分类为「无法实现」的记录。已有映射见 [case-routing.json](assets/case-routing.json),新增用例依其正文分析,不硬套关键词。 2. 读 [工具路由](references/tool-routing.md) 中对应工具项,然后只读需要的执行说明。平台和内部工具保留原体系;第三方和通用辅助工具可按目标选择等价实现。 3. 用 `python <本技能>/scripts/tool_runner.py --help` 和 `doctor` 检查可执行文件、模块运行时、DLL、包和能力;`doctor --check-versions` 才实际调用版本/帮助。参数以脚本实际帮助为准,路径来自本机 profile;文件或配置存在不等于能加载、已登录或业务可用。只在执行该用例所需时解压/安装工具,不能自动运行压缩包内激活器或无关程序。 4. 先确定输入、实际观测方法和判据,再调用工具。只有调用成功而无业务观测时保留未验证,不从工具退出码推导 PASS。 | 需求/工具 | 调用方式及按需说明 | | --- | --- | | 移动视联 PC | 实际 PC 程序+宿主 Windows UI 控制;操作前观察当前窗口。见工具路由 | | mainThread PC | 已确认端侧数据采集工具的 PyQt 原生 GUI;从实际窗口进入只读报告查询,控件与权限须现场核验。见工具路由 | | 客诉处理系统、连楹、老 DM | 浏览器操作真实网站;读取当前页面和登录状态,不编造接口。见工具路由 | | 内部配置工具 | 先检查 `device_adapter.py capabilities` 和设备协议类型;V1/V2 支持搜索、身份/版本查询及显式固件下发,默认仅预检。见 [协议范围](references/protocol-support.md)、[V1 接口](references/v1-protocol.md) 和 [设备适配器](references/device-adapter.md)。其余配置用实际 PC 界面/已验证协议 | | Codex | 负责本 Skill 编排、解释证据和必要 PC/browser 操作,不把 Codex 当独立被调用的 CLI 测试判定器 | | Wireshark / TShark / dumpcap | 有界采集和离线分析,见 [CLI 工具](references/cli-tools.md) | | FFmpeg / ffprobe、MediaInfo | ffprobe 支持本地媒体或明确 RTSP 环境变量;正式 `media-info` 通过已配置 DLL 分析本地文件。见 CLI 工具及工具路由 | | Nmap、Binwalk | 显式单目标端口检查;`firmware-scan` 支持原生 Binwalk 或固定隔离 Python 模块入口。见 CLI 工具,分析命令不等于安全用例结论 | | SecureCRT / 串口 | 可用只读 PowerShell 采集替代;显式 COM、波特率、时长。交互登录/发送命令需当前用例实际要求 | | 路由器配置 | 实际网关管理界面/已文档化 API;记录修改前值和恢复结果。未知地址/权限时只阻塞相关阶段 | | firmware_encrypt | 厂商 SDK 实际程序及文档;缺少时标记依赖缺失,不能由 Binwalk 冒充 | | Artemis | [手机工作流](references/artemis-workflow.md),使用已安装 MCP 的真实 `mobile_*` 工具 | ## 执行约定 - 使用完整摄像机 SN、上报型号、手机 `device_serial`;IP 可变化,重发现仍按同一 SN。APP 中的设备条目必须与该摄像机关联,显示名相似不能证明同一设备。 - 本机 profile 与分发包分离。凭据只由当前会话或受控凭据来源提供,不写进 Skill、命令示例、任务描述或报告。已有登录状态可用时不退出重登。RTSP URL 通过进程环境变量输入,脚本输出脱敏;不要在聊天/日志中展开含密码的 URL。 - 客诉系统、联楹(连楹)和移动视联采用“人工登录 → 确认登录态 → 自动操作”。登录由用户完成,包括账号、密码、验证码、短信和协议确认;代理不代填或提交。优先复用已登录会话,确认进入业务页且具备目标查询权限后继续当前授权用例,无需逐步再次确认。未登录记“等待人工登录”,无法观察会话记“登录状态未确认”,均不写成工具缺失;详细交接见工具路由。 - 授权覆盖当前具体用例;信息充足则直接做,不逐步重复确认。只读检查不默认扩展成升级、解绑、恢复出厂、千次循环或路由断网。参考文档中的历史用户授权不适用于新测试。 - 同一摄像机及共享实验台串行。Artemis 队列只保护手机,不保护 COM、网卡或 PC 程序;不抢占其他任务。有限等待,超时保存观测与原因,不自动重刷或重提业务任务。 - 固件任务先确定设备的 V1/V2 协议;配置工具的软件版本不能代替设备协议类型。已知 V1 时用 `--protocol v1`,不把 V2 无响应判成离线。型号未知时用 `identify --host ... --expected-sn ...` 只读查询,再用实测型号校验。升级默认在线预检;当前授权范围内显式 `--execute`、提供审阅摘要并校验完整身份后,最多一次传包。V1 使用源码核实的 TCP 4941/2170,不能混用 8940/EPFP 通道。 - 固件流程区分 `offline`(不联网)、`info`(只读联网)、`upgrade`(默认在线预检,受支持协议显式执行才传包)。协议完成后必须重新查询同 SN 的任务指定固件字段。V1 原生字段为 `firmware`、`dev_ver`,没有已证实的 `inner.version`/`outer.version` 映射;不能自动改验收字段或用硬件版本替代。没有完整验收只报告协议阶段结果。 - 手机任务从 `mobile_workspace`、首次 `mobile_diagnose` 开始。模型 Key 未配置时不提交必然失败任务;设备观察仍可独立验证。Key 通过 Artemis 本机设置/.env 配置,不索取聊天明文。 - `completed`、`code=0`、收到画面截图、抓到数据包,均不自动等同于对应业务用例通过。精确规则与用例限制见工具路由。人工声画评估或物理场景依赖必须保留。 - 13.9 要求无本地 Web 服务;13.3 的设备 Flash 加密不能靠 Binwalk 解包失败证明;9.136 要用原流帧类型及时间戳,不能用 APP 录屏。异常固件场景中客户端预检阻断或网络失败不能当作设备按预期拒绝。 ## 交付 按 [联合报告契约](references/evidence.md) 保存实际断言和证据,用 `scripts/evidence.py bundle --manifest <本次JSON> --out <新目录>` 生成 Markdown、JSON、ZIP。汇总包含通过、失败、阻塞、未验证及仍需人工验证项。 Artemis 原生报告按真实 session 导出,PC 日志和分析结果独立关联;不改 trace/数据库,不声称外部结果已写入 Artemis 原生报告。远端文件需实际取回才可归档。发布包只包含代码、通用配置示例及参考,不带本次账号、真实设备资料或原始抓包。 内部推广、配置和升级方式见 [团队使用](references/team-setup.md)。对能力状态使用明确描述:已做离线测试、已通过本机工具调用、已完成真机验证、仅有操作入口、依赖缺失;不要把这几种混成「已实现」。 试用反馈使用 [反馈模板](assets/feedback-template.md),带上 `VERSION`、环境检查结果、复现步骤和经检查可分享的证据。Artemis v1.5.2 观察链补丁及适用性检查见 [补丁说明](references/artemis-patch.md);安装 Skill 本身不会修改 Artemis。