SuperAPI AI 工具集

alan-test-feature

测试与质量

查看项目

更新于 10-16 10:41

技能介绍

alan-test-feature 是一个「测试功能并生成演示报告」的技能,属于 supatest-ai/alan-skills 集合。

【用途】 它用于对当前分支的改动进行端到端浏览器测试,并生成一份结构化的测试报告作为可交互产物呈现。整个任务围绕以下目标组织:分析当前分支的改动、与用户确认覆盖级别、构建明确的测试策略、启动应用的开发服务器、使用 agent-browser 在真实浏览器中测试该功能、采集截图和视频(始终执行,无例外)、将所有内容上传至 S3、并生成结构化测试报告(始终执行,绝不跳过)。

【主要能力】

  • 环境准备:获取 artifact 上下文 ID(任务 ID 来自 ALAN_TASK_ID 环境变量,会话 ID 来自 ALAN_SESSION_ID 环境变量,teamId 通过 Alan MCP context/tools 解析),验证 agent-browser 是否可用(npm 工具 agent-browser,由 Vercel Labs 提供,属于 CLI 工具,并非 skill 或 MCP 工具,在沙箱中由 runtime-bootstrap.ts 预装),并创建 /tmp/alan-captures/ 工作区。
  • 覆盖范围确认(强制):通过 AskUserQuestion 询问用户想要的覆盖级别,可选 light(仅快乐路径,快速冒烟测试)、standard(快乐路径 + 关键边界情况 + 基础错误状态,为默认)、comprehensive(完整覆盖:快乐路径、所有边界情况、错误状态、非快乐路径、边界值、可访问性、响应式);并追问 1–3 个针对性问题,之后向用户复述确认计划。
  • 发现待测内容:分析分支(git log 与 git diff --stat),阅读实际 diff 以识别受影响的页面、组件、API 路由、预期行为变化与测试 URL 路径;发现并启动开发服务器(检查 package.json、docker-compose、Makefile、Procfile、.env、Pipfile、requirements.txt、Gemfile 及框架特定文件);轮询等待服务器响应;确定应用 URL。
  • 构建测试策略与 todos(强制):根据用户选择的覆盖级别、diff 分析与上下文,写出完整测试计划(场景名称、类型、步骤、预期结果、是否需要截图),用 TodoWrite 为每个场景创建 todo,并在进入浏览器测试前向用户展示完整策略。
  • 使用 agent-browser 测试:通过 CLI 调用(open、snapshot、click、fill、screenshot、record、wait、find、close),打开应用、开始视频录制(强制)、截取初始状态截图(强制)、按策略执行每个场景(边界情况、错误状态、视觉与导航校验),并在每次显著状态变化后截图。
  • 上传采集文件至 S3:使用 mcp__alan__get_upload_url MCP 工具获取预签名 URL,再用 curl PUT 直接上传文件。
  • 生成结构化测试报告(强制,绝不跳过):必须调用 mcp__alan__create_test_report MCP 工具,包含标题、taskId、conversationId、teamId、分支、baseBranch、commits、changedFiles、appUrl、summary、status、steps、issues、videoUrl、screenshotUrls 等字段,使 UI 将其渲染为交互式产物。

【使用方式】 本技能以任务流程形式运行:先进行环境设置(验证 agent-browser 可用,缺失时用 npm install -g agent-browser && agent-browser install 安装),随后依次执行覆盖范围确认、待测内容发现、策略制定、浏览器测试、S3 上传与报告生成的各个阶段。测试中的所有采集文件必须写入 /tmp/alan-captures/,不得写入 .claude/、项目目录、reports/ 或仓库内任何路径。视频录制需控制在 2 分钟以内;若 ffmpeg 可用,还需对 .webm 文件进行 remux 以修复时长元数据。报告必须通过 MCP 工具持久化,不能仅以 markdown 文本或聊天总结替代。

【适用场景】 适用于对当前分支改动的功能进行真实浏览器端到端测试并产出演示报告的场景,包括快乐路径验证、非快乐路径与错误状态检查、视觉与导航校验,以及需要截图与视频留档的测试汇报。

【限制】 所有浏览器测试都依赖 agent-browser;若其不可用且无法安装,必须停止并告知用户,不得进入第二阶段。截图与视频采集为强制项;测试报告必须通过 MCP 工具创建。若上传失败,仍需继续生成报告,省略媒体 URL 字段。若视频录制因技术原因失败,可记录失败但继续,截图仍为必需。关于本技能的具体定价、支持平台与更多其他信息,资料暂未提供。