@if (error()) { } @if (notice()) {

{{notice()}}

} @if (tab() === 'reports') { @if(batch(); as b){}

默认报告格式

任务结束后自动生成。批次报告包同时包含汇总和每个任务的报告。

当前任务报告

@if (report(); as r) {
{{r.name}}
{{label(r.status)}}
@if(r.test_result; as result){} @if (r.error) {
异常原因

{{r.error}}

}
任务目标与预期

{{r.goal || '未记录'}}

@if(r.expected){
预期结果

{{r.expected}}

}
下载 Word下载 Excel 步骤截图 ZIP 分段录屏 ZIP 下载全部资料

报告包含目标、预期、实际结论、步骤与截图证据。执行中的下载为当前快照。

结论与发现

} @else {

从任务队列或历史记录中选择任务,即可下载报告。

} @if (liveTask() && agent.currentSessionId()) {

任务指导 · {{label(taskStatus())}}

{{ taskStatus() === 'paused' ? '模型请求已暂停;提交指导后请在执行日志中恢复模型调用。' : '运行中提交会立即打断模型思考并重新观察设备;正在执行的设备动作会先安全结束。' }}

@if(taskStatus() === 'running'){} @if(taskStatus() === 'task_paused'){}
}
} @if (tab() !== 'reports') {
} @if (tab() === 'batches') {

导入任务

每行一个用例,仅「Artemis提示词」作为任务正文;「任务配置(JSON)」可设置每项模型、模式、超时和录屏。「前置约束提取」仅供查看与搜索。示例在模板的「填写说明」页。

@if(preview(); as p) {
已选 {{selectedCount()}} / {{p.tasks.length}} 个用例 · 错误 {{p.errors.length}} 条
@for(e of p.errors; track e.row){

第 {{e.row}} 行:{{e.message}}

}
@for(t of p.tasks; track t.row){
{{t.case_id ? t.case_id + ' ' : ''}}{{t.name}}第 {{t.row}} 行

{{t.goal}}

@if(caseConfig(t.task_config); as config){
自定义参数
{{config}}
}@else{使用批次 / 全局参数}
}

{{selectedCount()}} 个用例 × {{repeatCount || 0}} 轮,共 {{selectedCount() * (repeatCount || 0)}} 次执行

每轮按表格顺序执行所选用例,分别保存结果。未勾选用例不会导入。

@if(!validRepetitions()){

循环次数须为正整数,执行总数不超过 {{maxExecutions}}。

} }

批次记录

@for(b of batches(); track b.id){
} @if(!batches().length){

暂无批次。

}
@if(batch(); as b){

{{b.name}}

{{label(b.status)}} · {{b.reason}}

{{b.case_count || b.jobs?.length || 0}} 个用例 · {{b.repeat_count || 1}} 轮 · 共 {{b.total_executions || b.jobs?.length || 0}} 次执行

@if(agent.currentSessionId()){} @if(b.status === 'running'){} @if(b.status === 'draft' || b.status === 'paused'){} @if(b.status !== 'running' && b.status !== 'deleting'){}

服务重启后等待手动继续。失败项不会自动重试;暂停不打断当前任务。

@if(archiveBatchId() === b.id && archiveProgress(); as progress){
@if(progress.status === 'preparing'){} {{progress.stage}}
@if(progress.status === 'preparing'){

已处理 {{progress.completed}} / {{progress.total}} 个任务 · 已用 {{duration(progress.elapsed_seconds)}}@if(progress.eta_seconds !== null){ · 预计还需约 {{duration(progress.eta_seconds)}}}

} @else if(progress.status === 'failed'){

{{progress.error}}。可点击下载按钮重试。

} @else if(progress.status === 'ready'){

打包完成,下载已开始。

}
} @if(b.report_error){

报告生成失败:{{b.report_error}}

} @for(j of b.jobs; track j.session_id){
{{label(j.status)}}@if(j.error){{{j.error}}}
}
} }