Files
Artemis-Eapil/skills/artemis-automation/references/batches.md
T

5.0 KiB

批量任务与报告交付

直接提交用例

用户要求执行明确的测试集合时,将每个独立提示词转成一个 case。goal 是唯一发送给 ARTEMIS 的任务正文;case_id、category、subcategory、name、preconditions 只作元数据。task_config 可覆盖该项执行配置,不影响其他项。

先生成唯一 request_id(例如 UUID),保存在当前任务记录中,然后调用:

{
  "action": "create",
  "request_id": "52c3e95d-7e31-4e41-b42d-27aa3774fb2d",
  "batch": {
    "name": "系统设置冒烟测试",
    "device_serial": "用户已选择的设备编号",
    "profile": "pro",
    "formats": ["docx", "xlsx"],
    "stop_on_failure": false,
    "timeout_seconds": 1800,
    "cases": [
      {
        "case_id": "DEMO-001",
        "category": "系统设置",
        "subcategory": "首页",
        "name": "设置首页可达",
        "preconditions": "设备已解锁。",
        "goal": "打开系统设置,确认设置首页可见,不修改任何设置;记录实际文字与截图证据。",
        "task_config": {
          "profile": "pro",
          "model": "mimo-v2.6-flash",
          "reasoning_effort": "high",
          "locked_app_package": "com.android.settings",
          "record_video": true,
          "analyze_video": false,
          "request_timeout_seconds": 300
        }
      }
    ]
  }
}

create 只保存已校验的草稿。检查返回批次编号和范围,用户已经授权执行时接着 mobile_batch(action="start", batch_id=...);用户只要求准备方案时留在草稿,不启动。保存 batch_id,用 get 跟踪各项状态。

创建请求超时可能已经落库。先 lookup(request_id=...);需要重发时保留相同 request_id 和相同内容。服务会返回原批次,内容不同会拒绝。不要通过换编号“修复超时”,否则会形成重复批次。

Excel 导入

mobile_task_file(action="template") 返回空白模板的本地路径。“任务”页七列依次为:用例编号、检测项目、测试子项、测试用例、前置约束提取、Artemis提示词、任务配置(JSON)。仅提示词必填;说明页有一条示例,不会导入执行。JSON 支持 profile、model、reasoning_effort、device_serial、verification_level、explorer_mode、locked_app_package、record_video、analyze_video、request_timeout_seconds、max_retries、retry_interval_seconds、timeout_seconds。未知字段或密钥被拒绝。每行独立,不支持公式、宏、外部链接。

preview 返回 valid/tasks/errors,不会执行。所有错误处理完后,将 tasks 中每项的预览字段 row 去掉,作为 batch.cases 提交。不要跳过错误行却声称全部导入成功。

状态与异常

  • 批次 draft 等待开始;running 调度中;paused 等待处理;completed 表示所有项进入终态,不代表全部通过。
  • 单项 pending/queued/running/pausing/task_paused/resuming/finalizing 尚未结束,completed/failed/cancelled/interrupted/skipped 是终态。pausing 是请求已发出而设备仍被占用,task_paused 才表示设备已释放;finalizing 在生成报告,不能提前宣称报告已完成。
  • 批次 pause 保留当前执行,只暂停后续派发;单项 mobile_manage_task(pause) 会在安全边界释放设备,Pro 的模型等待与只读诊断可中断。恢复后重新观察画面,并排到设备队尾,不阻塞后续项。mobile_manage_task(guidance_history) 可核对指导是否从 pending 变为 consumed,但仍需检查后续操作是否符合指导。设备断开、模型持续失败或任务达到批次时限会暂停后续派发;用诊断确认恢复后再响应用户的继续指令。
  • resume 只继续未开始项;retry_failed 复制失败、取消和中断项为新草稿,不修改原结果。必须来自用户的明确重跑请求。该动作不提供创建去重,响应不确定时先 list 查找新批次,不自动重复调用。
  • 用户明确要求删除批次记录时,先 get 核对批次编号与状态,再 delete;正在执行、排队或等待指导的批次不能删除。删除会同时移除该批次任务历史、报告和文件,无法撤销。

报告

mobile_export_report(batch_id=...) 下载批次 ZIP,包含汇总、各项报告和有序步骤截图;任务保存了录屏时,还包含对应录屏片段。报告格式由创建批次时的设置决定。单任务传 session_id(单任务 MCP 的 trace_id)以及可选 formats=["docx"]、["screenshots"]、["video"] 或 ["all"]。默认格式通过 mobile_config(section="reports") 查看。录屏与 AI 视频分析独立,只有保存了录屏才可下载片段。

结果文件在 MCP 主机的 artifacts/mcp_exports/。不要把 Office 文件内容当作文本塞入上下文;先检查工具返回的结构化结论,需要进一步审阅时再用宿主具备的文档工具打开文件。失败和未验证项也必须交付,保持原始证据。