80 lines
20 KiB
Markdown
80 lines
20 KiB
Markdown
---
|
||
name: artemis-case-prep
|
||
description: 从多工作表原始 Android 测试用例中筛选适用于目标设备且可由 ARTEMIS 自动执行的用例,核实测试环境和用例信息后标记原表副本,并填写七列批量任务模板。也用于依据已有 ARTEMIS 运行证据修订任务提示词;不用于直接运行批次或改造导入器。
|
||
metadata:
|
||
version: "1.2.0"
|
||
---
|
||
|
||
# ARTEMIS 用例准备
|
||
|
||
把原始测试用例工作簿转成两份可追溯的文件:保留原有内容并新增“是否选中作为自动化执行”(`是`/`否`)列的原表副本,以及只包含选中用例的七列任务表。优先使用用户提供且符合下述七列表头的模板;未提供时使用 [七列模板](assets/artemis-tasks.xlsx)。不要覆盖输入文件。
|
||
|
||
首次转换按下述适用性与信息完整性要求准备正式文件;已有任务表复盘时,按 [依据已有运行修订提示词](#依据已有运行修订提示词) 处理。参考文件中的历史环境、批次、条数、路径和用户确认只在可对应的原项目内适用,不能代替当前用户的确认。仅要求更新 skill 时只修改技能文件。
|
||
|
||
## 先确认适用性,再判断自动化
|
||
|
||
1. 逐页识别真正的用例表、表头、续行、合并单元格及行级适用性;不要以固定列号、`max_row` 或单独的用例编号推断用例。行政清单、报告页和空白格式行不算用例。遇到本项目附件的异构页时,读 [字段与边界](references/workbook-contract.md)。其他原始文档仍须按其实际结构重新识别。
|
||
2. 适用性由用户在**原始用例**中完成:核对目标设备及每条用例的“是否适用”标记、标题限定或明确的适用说明;不强制另建设备能力清单。若有空白、缺少行级判定而无法由原文明确判定,或目标设备信息与原文范围无法对应,列出缺失的工作表与行号(可压缩连续行段),提醒用户补齐并**暂停正式转换**。不得把空白当作“不适用”,也不得从型号臆测设备能力。适用性明确为“否”的用例在自动化列标“否”。
|
||
3. 对适用用例逐条判断能否由 ARTEMIS 的 Android UI 操作及其可用 ADB/日志观察建立前置条件、完成动作并取得可核验结果。依赖人工观察、实物遮挡/断电、外部设备或 PC 操作、主观音画质量评价,或者前置条件无法建立的用例标“否”,不交给 ARTEMIS 试跑。不能因为有步骤文字就判“是”。“是”表示适合自动化执行,不表示测试已经通过。
|
||
原始步骤若有不清晰之处,尤其操作对象、顺序、入口、触发条件或结果判定不明确时,列出来源工作表、行号、原文及具体疑问,向使用者确认后再判定该条用例并定稿 Artemis 提示词。确认前不猜测步骤或界面路径,也不把“否”作为替代澄清的标记;可继续整理其他明确用例,但受影响条目保持待确认,正式任务表待澄清后再交付。
|
||
4. **编写任何 Artemis 提示词之前**,先取得用户提供或明确确认的四项信息:① Android 模拟器名称(不用模拟器时,由用户明确说明“使用真机、不使用模拟器”);②测试 App 名称;③测试 App 版本;④被测设备名称。模拟器是运行 App 的 Android 环境,被测设备是用例操作的设备,两者不可混用;设备型号、固件版本和用例文档日期不能替代 App 版本。已有对话或用户提供的原始资料中有明确值时直接沿用,不重复索取;仍缺任何一项时集中列出缺项并暂停提示词编写,不生成带占位符的草稿提示词。可先分析原表并整理待确认用例。
|
||
5. 逐条检查用例是否足以确定前置条件、操作对象与顺序、触发条件、可观察的预期结果。原文或用户资料不全时,列出来源工作表、行号、原文和具体缺项,请用户补齐后才编写该条提示词;不猜测步骤、界面路径或预期,也不以“否”代替澄清。涉及“一致/匹配/同步”时,还须取得比较字段、独立的预期值或可信参照及适用范围;不能从被测页面自身反推预期。若用户明确无法取得独立参照,才判为无法自动核验。其他信息完整的用例可继续整理,但正式任务表应待全部待确认项处理后交付。
|
||
6. **测试开始之前**,在目标 Android 环境中统一核验一次实际安装的 App 版本并记录结果;同一轮测试的各条用例沿用该结果,不逐条重新核验。若测试过程中安装版本变化,重新核验。另须确认需要使用的设备 SN、秘钥、设备型号等执行信息。用户已明确这些设备信息可在该工作流中正常流转;相关用例可直接使用已提供的值,不凭空编造。若某项信息本身是用例前置条件或断言所必需,应按第 5 条在编写该条提示词前取得。不要把 ARTEMIS 的模型 API Key 与设备秘钥混同。
|
||
|
||
## 生成与核验
|
||
|
||
- 在原表**副本**的用例表增加且只增加所要求的自动化标记列(若已有此列则更新,不重复新增);每条用例填 `是` 或 `否`。先核对目标位置不会覆盖既有数据,保留原工作表、原文、图片、合并、格式及非用例页。若所选表格工具不能保真,停止交付并说明损失,不输出貌似完整的副本。遵循可用的 spreadsheet 工作流进行编辑、渲染与导出检查。
|
||
- 任务表严格沿用 `任务` 页的七列顺序:`用例编号 / 检测项目 / 测试子项 / 测试用例 / 前置约束提取 / Artemis提示词 / 任务配置(JSON)`。只写入适用且自动化列为“是”、提示词所需信息已补齐的用例;其他工作表保持模板原样。`用例编号` 只填写原表显示的编号,不附 `(Sheet1!2)`、`〔来源页!行号〕` 等工作表/行号后缀;原表编号不改。重复编号保持原样,处理时另以来源工作表和行号定位用例。`Artemis提示词` 是唯一提交给 AI 的任务正文,其他文本列只作元数据,不自动拼入提示词。
|
||
- `任务配置(JSON)` 可留空,表示继承批次或全局配置;确需逐项覆盖时,只写当前 ARTEMIS 导入器支持的字段和值,使用合法 JSON 对象,不写密钥、占位值或未经确认的设备序列号。模拟器名称和被测设备名称不能当作 `device_serial`;填写前核对实际序列号。字段及导入边界见 [七列契约](references/workbook-contract.md#模板)。
|
||
- “前置约束提取”及每条正式“Artemis提示词”均须包含已确认的模拟器名称或真机环境、测试 App 名称与版本、被测设备名称,以及本条实际所需的账号、网络、状态等前置;一致性用例写明比较字段及独立预期值/来源。可在执行时只读取得的既有配置、实际名称和本次操作起止,不强制用户事先手填;独立预期、适用性、外部场景等仍须落实。尚缺资料只列单独待补清单,未补齐时不编写该条正式提示词,不把占位内容放进任务表。
|
||
- “Artemis提示词”必须以 `【原表显示的用例编号】` 紧接原“测试用例”文本(仅去首尾多余空白)开头,再另起完整说明。例如 `【1.1】【声波配网】手动长按重置恢复出厂后首次绑定完成配网流程`;连接是文本拼接,不写字面 `+`,不附来源页/行号。原编号或用例文本缺失时请用户补齐,不造编号或标题。执行说明写明沿用测试前统一核验的 App 版本、实际起点、操作意图与顺序、必要等待/状态转移、可观察预期及判定方式,不要求逐条再查版本。保留原量词、时长、观察端和判据,不发明界面路径、定位器、坐标或功能,不把相邻用例动作塞入共用段。
|
||
- 先按 [用例完成检查与收尾](references/workbook-contract.md#用例完成检查与收尾) 逐项核对本条必需操作和结果观察。某项失败、弹窗文案不同或缺少部分断言依据时,保留该项结果,继续可独立执行的操作与回读;仍能补做的漏项先补完。全部必要项完成,或剩余项有具体阻碍且有限恢复无效,或用户取消/实际预算终止时,再收尾。“失败或未验证也收尾”不表示首个偏差即可结束。
|
||
- **移动爱家用例保留强制停止收尾**:完成本条操作和观察、达到上述退出条件后,强制停止 `com.cmri.universalapp`;失败或未验证同样执行。执行端有实际可用的应用停止能力时可直接使用,支持 ADB 时可用 `am force-stop com.cmri.universalapp`。执行端不支持或停止失败,由 Codex 在本条结束、设备空闲且下一条尚未启动时通过宿主 ADB 补做;开始下一条前确认主进程及 `com.cmri.universalapp:` 前缀子进程均已停止,未确认则先处理收尾。下一条重新启动 App、等待加载并建立本条前置。用户当前明确另有收尾安排时按其要求;其他 App 按该任务约定,未约定时返回 App 内设备首页并确认,不误用移动爱家包名,也不把系统桌面当设备首页。
|
||
- 按本条场景读取下表,采用实际适用的操作,不把专项数值和历史入口推广为所有用例的默认值。
|
||
|
||
| 场景 | 需要读取及核对的规则 |
|
||
| --- | --- |
|
||
| 直播清晰度、全屏、声音等短时浮层 | [短时浮层与连续操作](references/transient-controls.md):首次用同动作早帧识别入口,核对当前布局;已定位入口在实际支持的短序列内完成唤出与点击。声音图标只证明 UI 状态,不能代替听音;旧早帧不是当前状态。 |
|
||
| 设置长列表、表单、云台、计划、图片操作 | [提示词与决策](references/workbook-contract.md#提示词与决策) 及 [设置页查找](references/workbook-contract.md#设置页查找与到底确认):移动爱家设置先等实际内容刷新;未见目标时按实际进展继续查看下方及相关子页,核实到底,不固定盲滑次数。仅对已对应项目采用16.1等用户专项例外。 |
|
||
| 云回看、卡回放与选时 | [回看选时](references/workbook-contract.md#提示词与决策):按实际存储类型、日期、时区与过去区间选时;颜色只作线索,灰色也可能有数据,以回读与实际播放核验。难定位时可点击实际可见“+”放大时间轴,再拖蓝色光标并回读,精确时间要求不放宽。仅移动爱家卡回放可在“云回看”后观察切换入口。本次生成型回看先完成规定档位及真实时长,再查对应新录像,不用旧片段替代。 |
|
||
| 分辨率截图与相册核验 | [设备截图分辨率与相册查看](references/workbook-contract.md#设备截图分辨率与相册查看):识别本次截图原图、读取宽×高,与已确认预期比较;核对本条有效应用锁定配置允许切换相册,核验后按本条约定收尾。 |
|
||
| 持续播放、等待、录像与预算 | [长时任务预算与实际计时](references/workbook-contract.md#长时任务预算与实际计时):用可靠起点、截止和剩余时长,保留原业务时长;单条有效预算须包含启动、定位、测量、有限恢复和收尾。30分钟业务不能仅给1800秒总时限,可按实际流程在受支持的单条配置覆盖如 `{"timeout_seconds":3600}`,保留其他配置,不改全局默认。 |
|
||
| 既有编码、AOV、云/卡回看专项 | [编码与回看补充](references/encoding-playback-feedback.md) 及 [既有项目反馈](references/project-feedback.md):按对应原文、版本和用户确认应用,区分 App 业务录像与操作录屏、各组合实际计时、设置回读和业务效果。 |
|
||
|
||
- 给 Codex 的通用截图、录屏、证据归档、结论和模型诊断要求不写入每条“Artemis提示词”。用户明确指定的画面截图、操作视频、日志地址/文件等本条交付物,可以写明动作、数量、时段及关联方式;操作录屏必须通过受支持的单条配置实际开启,不能只写提示词,也不以 App 内录像替代。采集完成与业务通过分别核验。
|
||
- 正式输出前确认所有真实用例的自动化标记均为 `是`/`否`、所有待确认项已处理,任务数据行数恰等于“是”的数量。逐行核对原编号、提示词原文前缀、四项环境、原动作/判据及约定收尾;移动爱家包名和进程检查准确。第七列为空或为仅含支持字段的可解析 JSON 对象。抽查独立比较参照、异构表头、重复编号、合并/续行和排除项;核实输入未改、非目标内容保真、模板七列及来源可追溯。提示词不得出现逐条查版本、通用归档或模型诊断口令。
|
||
|
||
本七列模板沿用已查看的 ARTEMIS `task_import.py` 契约,不能仅凭表头声称已导入。用户以后要求执行时,由执行方用当时服务的预览校验核实真实支持字段和逐行错误,再按执行授权启动。本 skill 不改导入器、不调用 `mobile_batch`、不启动设备;编写外部可执行测试代码前须用 ARTEMIS 探索实际应用。
|
||
|
||
## 依据已有运行修订提示词
|
||
|
||
用户要求复盘任务或重出既有任务表时,沿稳定 batch ID、session/trace ID 与原用例对应,读取 [已有任务表复盘修订](references/workbook-contract.md#已有任务表复盘修订)。分别保留原终态、业务判定、Checker、实际步骤和复核结论,按证据修正本条的范围、前置、定位、时序和断言;用户新确认路径不冒充旧 trace 已走通,历史 `completed` 不证明业务通过。发现提示词、执行器观测或模型链路问题时分别记录,技能文字修改不代表后端修复或设备复测完成。
|
||
|
||
默认以用户指定或最新已交付的七列 `.xlsx` 为底稿,只回填受影响行的完整提示词和必要单条配置,交付保留其他用例、原编号/顺序、环境、辅助页、样式及批注的新副本,不覆盖底稿。上次交付后已定稿且尚未回填的相关修订一并带入。用户明确仅要单条或其他格式时按其要求。只有用户明确要求全量重审才逐条改写全量,不因单条优化、更新 skill 或历史完成状态自动增删集合。
|
||
|
||
用户明确改为操作、指定截图/视频/日志采集及人工判断时,按新范围编写,保留原判据及人工待判,不用首次全自动筛选规则排除整条,也不把采集成功写成产品通过。暂不适用用例从可导入的“任务”页移出,不伪造 `enabled`/`skip` 字段。用户要求保留全量但条件未齐时,可另交明确标识的审阅稿和待补清单;不得混为正式可派发表或自动改原表标记。
|
||
|
||
仅在当前请求可明确对应来源项目时,读 [既有项目反馈与专项修订](references/project-feedback.md);其中68条集合、删除清单、固定环境、V6/V7、数值、特殊入口及桌面命名只用于该项目,具体规则与 [覆盖核验](references/workbook-contract.md#本轮68条重出与覆盖核验) 对照。新项目按实际资料重新识别;交付位置沿用当前请求或工作区输出约定。没有当前底稿而需回填时再核实来源,不因只修改 skill 自动生成任务表。
|
||
|
||
## Codex 执行与证据归档(不写入 Artemis 提示词)
|
||
|
||
后续正式执行前,执行方须实际确认登录状态、目标设备可见及本轮所需在线状态,不能只核验安装版本就视为执行环境已就绪。用户已授权自动登录且存在现有账号、已保存凭据或可用免密入口时,按实际界面尝试并观察反馈;密码框显示占位文字或看似为空,不足以断定缺少凭据。只有实际登录反馈或必要输入明确缺失时才记录对应阻碍,不猜造密码、验证码或登录路径。登录成功与本轮所需设备状态分别核验;用例或本轮要求核对固件时,另按已确认目标核验。共同的登录障碍应作为环境问题关联受影响用例。
|
||
|
||
以下是已有任务表的后续执行约定,不替代前文准备正式任务表的待补要求。用户已明确“全量处理、遇阻先跳过并继续”时,执行方在派发前核对人工、实物或外部工具条件;可独立执行的部分继续核验,核心动作或断言全部依赖未具备条件的条目直接记录跳过/阻塞、缺失条件与未执行分支,不交给 Flash 等待其解决外部条件。“全量处理”应保留每条用例记录,不表示条件已具备或断言已通过。沿用用户已选安排,不逐条重复索取同一条件,不将受阻项判为产品失败或通过。
|
||
|
||
后续执行测试时,Codex 在关键操作前后截图并保留本任务录屏;记录证据路径,以便归档到工作区“测试佐证”目录。若工具只能保存到 ARTEMIS trace,报告 trace 和证据路径。前置条件不成立、控件未找到或证据不能证明预期时,如实报告阻塞或未验证,不写通过。这些要求由 Codex 处理,不拼入任务表每条“Artemis提示词”。
|
||
|
||
短时控件“点击后未见”时,执行方按 [瞬态取证与诊断](references/transient-controls.md#执行方的取证与诊断) 对齐真实落点、首次有效画面或已有录像及后续观测时序,区分点错位置、曾显示后隐藏和未取得短时证据。保留即时截图、调整观测策略及诊断 helper/UIAutomator2 属于执行方职责;本 skill 只编写相关操作意图与交接要求,不启动设备、修改后端或改变全局默认。
|
||
|
||
执行方先区分已声明的业务等待与模型停滞,不能只因 UI 步骤不增长就中断合法计时。模型请求反复超时、仅间歇恢复少量动作时,也按 [异常超时复盘](references/workbook-contract.md#已有任务表复盘修订) 核查跨回合累计耗时、实际目标进度、预算及收尾,不能用一次成功点击或短等待清除异常审计,不把等待模型当作业务观察;长时业务则核对实际等待参数、截止时间及剩余总预算。异常工具参数、重试和停滞监控由执行方处理,不向每条业务提示词追加自我催促、重试口令或固定模型等待;本 skill 的文字修订不能代替执行层的参数校验与超时修复。
|
||
|
||
## 执行状态显示取消但之后完成
|
||
|
||
ARTEMIS 执行期间,网页或列表可能显示“取消”/“正在取消”,而之后的持久批次或任务记录又显示已完成。不要依据单次界面快照判最终状态,也不要把“已完成”直接等同于测试通过。执行方应按稳定的批次 ID、session/trace ID 重新读取 ARTEMIS 持久状态,确认取消是否只是请求/过渡状态、任务最终状态,以及报告是否已就绪;检查应遵从工具建议并保持低频,避免连续轮询。
|
||
|
||
- 最终持久记录为 `completed` 且报告已就绪时,核对 trace/报告中的实际步骤、证据和业务判定,再分别记录通过、失败或未验证。
|
||
- 最终持久记录为 `cancelled` 时,它是终态;保留取消记录及已产生的部分证据,不得改写成完成,也不要因界面状态不一致而自动重提同一用例。确认终态后,按同一运行 ID 核对最新保存步骤及对应画面;若检查或取消期间又完成了动作,更新已执行范围,不沿用取消前快照的未执行结论。重跑须有明确授权,并作为新的执行记录。
|
||
- 若批次、session 与网页显示互相矛盾,或报告尚未就绪,记录各自 ID、状态和检查时间,做必要的低频只读核验;矛盾未消除前标记“状态待核实”,不得统计为通过或已完成。
|
||
|
||
此规则只用于解释执行记录,不改变本 skill 的职责范围:本 skill 负责准备与核验用例文档,不负责启动、取消、恢复或重跑 ARTEMIS 任务。
|