RageClick 是做什么的?
将URL和用户目标转化为简短、可复现的操作序列,揭示某个承诺的行为失效。使用现有的浏览器工具检查真实页面,然后使用内置的Playwright运行器获取可复现的证据。此技能不评估视觉设计,也不声称代表真实用户研究。
范围与成功标准
仅操作自有装置、本地应用或明确授权的测试环境。内置运行器仅接受回环URL,启动全新的浏览器上下文,并阻止源站以外的所有请求。本地应用仍可能通过其服务器修改真实后端:在提交之前,请建立合成数据和一次性账户。不要购买、发送消息、删除有价值的数据或更改访问设置。现有权限仅涵盖已商定的工作流。
根据用户的目标和观察到的UI,确定一个具体的不变条件:一个用于一次提交意图的文件、无效文件后的恢复,或一个在承诺保存后仍然存在的草稿。如果合约不明确,请记录观察结果或询问该特定行为,而不是凭空捏造缺陷。记录应用版本或提交哈希;如果不可用则使用unknown。
探索、扰动、回放
-
使用可用的浏览器工具或目标源代码检查当前页面。根据实际证据选择稳定的标签、角色或测试ID。首先执行普通的成功工作流。如果无法完成,请先解决该前置条件,或单独报告。
-
阅读references/plans.md以编写JSON计划。从references/perturbations.md中选择适用的模板。每次测试更改一个维度。新的浏览器上下文可以隔离浏览器状态,但服务器数据需要已知的重置或唯一的一次性账户。不要假设新浏览器会重置数据库。
-
在此技能目录下,执行
npm ci和npx playwright install chromium后运行:node scripts/run.mjs --url http://127.0.0.1:3000 --plan /absolute/path/case.json --out /absolute/path/evidence --app-version COMMIT输出目录必须是新目录。运行器会生成可读的报告、精确的计划、步骤结果、屏幕截图、追踪、视频和回放脚本。它无法自行推断目标或选择器;该技能负责完成这些工作。除非要求作为持久示例,否则将生成的证据保留在目标仓库之外。
-
将
observed_failure视为断言不匹配,而不是已确定的根本原因。在全新状态下重复相同的测试至少两次,才能称之为可复现。记录失败和成功;永远不要丢弃矛盾的重跑结果。execution_error表示某个操作、选择器、浏览器或边界失败,不属于产品证据。将主观的UX评论与客观断言分开记录。 -
在不改变失败结果的前提下最小化操作序列,然后使用
replay.mjs作为回归命令(退出码0表示通过,1表示断言不匹配,2表示执行/配置错误)。如果被授权修复应用,请针对修复后的版本重新运行相同的计划,并验证普通路径仍然通过。切勿更改断言来制造通过结果。
报告违反的合约、实际状态与预期状态、出现次数、应用/浏览器版本、确切的命令和证据路径。指出何时缺少视频、追踪、基线、重置或可重复性。在共享捕获结果之前,请对凭证和个人数据进行脱敏处理;追踪可能包含完整的请求/响应数据。此技能不暗示发布或外部消息。
限制
运行器使用Chromium、CSS选择器、原生指针事件、合成内联文件和有限制的请求延迟。请求延迟不是带宽限制或丢包。它无法自动化远程环境、HTTP重定向(包括同源重定向)、流式响应、多源登录、Service Worker、WebSocket或任意JavaScript。响应通过Playwright缓冲,并且禁用了重定向和传输重试,因此流式传输和网络时序保真度有限。浏览器凭据和Set-Cookie策略测试也不支持:API传输存储响应cookie的方式可能与浏览器fetch不同。对于不支持的工作流,请使用已有的、经授权的浏览器工具,并保持相同的证据合约;明确标记不支持的扰动。不要为了通过测试而削弱运行器的源边界。