Files
Artemis-Plugins/plugins/artemis-device-test/skill/references/pilot-smoke.md
T

60 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 首轮试用与简单验收
这是工具链烟测流程;用于确认同事电脑上能够实际调用工具,遇到阻塞记录后跳过。输入为本机 profile、当前授权目标和用户提供的样本。输出为环境状态、子检查结果和证据,不把烟测等同原 Excel 完整用例验收。
## 流程
1. 记录 `VERSION`、Windows/Python 位数、Artemis 版本;运行 `tool_runner.py --profile <文件> doctor --check-versions`。逐项检查 `availability` 和 `version_check`:doctor 整体退出 0 只表示盘点完成,可能仍有工具缺失。GUI、MCP 和登录状态另行检查。
2. 优先用本地媒体/固件/PCAP 做离线调用。没有真实固件时可用明确标为合成的正例验证 Binwalk,但不能将它关联为设备安全通过。需要补文件或驱动则按 [环境修复](environment-repair.md) 处理。
3. 已核对完整 SN/型号/IP 后,选择单设备的只读查询、抓包、限定端口或串口子项。同一台设备及共享实验台串行,抓包与被观测操作确需重叠时由同一编排者协调;不占用别人的 COM 或停止其他任务。
4. Artemis 先 workspace/diagnose,再只读 APP 观察及原生报告导出。平台先人工登录,确认当前页面和权限后继续。具体 MCP 参数见 [手机工作流](artemis-workflow.md)。
5. 根据实际观测写断言,再按 [报告契约](evidence.md) 生成综合报告。工具修复成功、用例失败、缺前置和未充分验证分别记录;任一阻塞不必阻止无依赖的其他检查。
## 可选子项
所有 `tool_runner.py` 的全局参数放在子命令前;使用绝对脚本路径或先进入 Skill 目录。输出目录预先建立,每次采用新文件名。示例中的尖括号必须替换,不能直接执行。
| 烟测 ID / 工具 | 操作及需要的输入 | 工具调用验收 / 业务限制 |
| --- | --- | --- |
| ENV-01 / 全工具 | `doctor --check-versions` | 每个所需 CLI 版本或帮助成功;DLL/模块可加载。GUI/manual-interface、MCP 待独立核实,不据整体退出码通过全部环境 |
| DEV-01 / 配置协议 | `device_adapter.py info --host <IP> --expected-sn <完整SN> --expected-model <型号>` | 实际响应身份匹配,记录版本。不能代表配置工具 GUI 搜索/设置或固件升级已验收 |
| MEDIA-01 / ffprobe | `tool_runner.py --profile <配置> probe --input <本地原流文件>` | 实际有视频轨、编码和尺寸;名义帧率不能证明持续性能;9系统设置!96 / 9.132 只覆盖读取子项 |
| MEDIA-02 / FFmpeg | 对同一已授权本地文件运行有界解码;见下节 | 返回码和诊断共同判断;文件不完整时不能因退出 0 宣布完整录像通过 |
| MEDIA-03 / MediaInfo | `tool_runner.py --profile <配置> media-info --input <同一媒体文件>` | 编码、宽高、音轨与 ffprobe 核对;空字段标为未验证;Duration 是毫秒 |
| NET-01 / dumpcap+TShark | `capture --interface <接口> --host <IP> --duration 10 --output <新pcapng>`,随后 `analyze-pcap --input <pcapng>` | 能读回来自目标的实际包;0包表示调用可完成但流量证据不足;不等于13安全!15 / 13.14通信安全通过 |
| NET-02 / Nmap | `scan --host <IP> --ports <双方约定的少量TCP端口>` | 每个请求端口的状态与覆盖度可核对。open不推断服务身份,filtered不等于closed;13.8/13.9完整验收另需范围及允许清单 |
| FW-01 / Binwalk | `firmware-scan --input <用户提供固件>` | 记录文件大小、扫描前后SHA-256、退出码和签名结果。0签名是有效观测,不能证明加密或无敏感信息;13.3/13.4另需存储/加密方案/文件内容证据 |
| SERIAL-01 / 串口替代 | `serial --port <COM> --baud <波特率> --duration 5 --output <新日志>` | 是否成功打开与是否收到字节分别记录。0字节时跳过13.18日志内容检查;不自动发送登录或命令。DTR/RTS仅匹配已知现场设置 |
| APP-01 / Artemis | 选定Android设备,只观察移动爱家当前目标页、保存观察笔记并结束,复核trace并导出 | 目标匹配、可见内容、截图/笔记与实际结论一致。completed不等于业务passed,也不等于摄像机物理场景通过 |
| GUI-01 / 平台及PC | 观察真实窗口/页面;人工登录后按授权只读查询 | 找到程序、窗口或登录页与完成查询分开记录;无法观察/输入时保留环境阻塞 |
### FFmpeg 本地解码示例
此命令直接调用 FFmpeg,**不是** `tool_runner.py` 已实现的新子命令。只用于本机媒体;RTSP 录制需单独确定 URL、凭据注入、时限和文件完整性,当前 runner 没有通用录制入口。
由 Codex 用 Python `subprocess.run` 的参数数组及 `timeout=35` 调用,保存 stdout/stderr 到本次受控证据目录。外层终端的等待/返回会话时间不等于进程终止时限。命令参数为:
```text
<本机ffmpeg.exe> -hide_banner -nostdin -v warning -protocol_whitelist file -i <本地媒体> -map 0:v:0 -t 5 -f null -
```
不把网络 URL、播放列表或用户提供的额外参数拼进此模板。超时停止本次进程并保存状态;输入含凭据时不能直接归档诊断。出现 `File ended prematurely` 等诊断时记录文件不完整,即使退出码为0也不能给文件完整性通过。I帧间隔另需 ffprobe 逐帧 `pict_type` 与时间戳;基础 `probe` 摘要不足,不能用APP录屏代替原流。
### 与 Artemis 组合的最小场景
选择同一已确认摄像机:配置适配器只读身份/版本 → Artemis 在 APP 设备设置页观察版本 → 比较同一版本语义,保存两侧原始证据。若 APP 只显示外部版本,不与设备硬件版本或内部版本混比;无法读到字段记未验证。也可 APP 观察直播 → PC 读取用户已提供的原流元数据,但 APP 截图只证明当时 UI 画面,码流参数取自原流。
给 Artemis 的任务正文同时写入目标、只读边界、观测项、失败停止条件和预期输出;不要只放在批次 preconditions 元数据。原生报告与外部证据分别保存,用 session/trace 和 case_id 关联,不改写原生报告。
## 已有开发机验证与本次试用的区别
2026-10-16 已验证 dumpcap/TShark 4.6.3、Binwalk 2.3.2 独立 Python3.11、Nmap 7.60、MediaInfo 21.09 DLL、FFmpeg/ffprobe 2023-12-18构建,以及配置协议只读查询和带修复的 Artemis v1.5.2 只读观察。这是兼容性记录,不是最新版本推荐或其他机器自动可用的保证。
- 真实固件签名扫描已完成但没有识别到签名,未验证设备Flash加密/AES方案/敏感信息。
- 两路RTSP复制曾达到外层时限,保留的部分媒体可离线分析但不完整;当前未宣称录制稳定。
- 串口曾确认基础双向收发;另一次被动窗口收0字节,尚未确认shell登录。不能将其中一次结果推广为所有设备或COM设置。
- Windows截图/点击与浏览器控制曾受宿主环境阻塞;移动视联还存在程序与控制进程权限不一致。平台登录后的业务、mainThread查询、配置GUI参数操作仍需现场验证。
- firmware_encrypt匹配SDK、老DM及算法OTA等专有入口仍需团队补齐。357条保留用例路由并非357条已自动执行或通过。
将本机实际结果填入 [反馈模板](../assets/feedback-template.md),不要复制历史通过标签作为新电脑的结论。