con un clic
auto-qa
在 OpenClaw 平台执行网页自动 QA 测试(自动操作 + 采证 + 报告 + 修复提示包)。当用户要求做自动化回归、演示级测试、失败证据归档或生成可直接交给下一窗口的修复 Prompt 时使用。
Menú
在 OpenClaw 平台执行网页自动 QA 测试(自动操作 + 采证 + 报告 + 修复提示包)。当用户要求做自动化回归、演示级测试、失败证据归档或生成可直接交给下一窗口的修复 Prompt 时使用。
A curated collection of 1809+ best OpenClaw skills — AI tools, productivity, marketing, frontend, mobile, backend, DevOps and more. Weekly updated by MyClaw.ai — Powered by MyClaw.ai
AI-powered presentation generation using 2slides API. Create slides from text content, match reference image styles, or summarize documents into presentations. Use when users request to "create a presentation", "make slides", "generate a deck", "create slides from this content/document/image", or any presentation creation task. Supports theme selection, multiple languages, and both synchronous and asynchronous generation modes.
Generate architecture diagrams, flowcharts, and system diagrams with AnyGen AI. Uses dialogue mode to understand structure, components, and relationships before generating. Triggers: draw diagram, architecture diagram, flowchart, system diagram, whiteboard diagram, sequence diagram.
Daily news briefing generator — produces a conversational radio-host-style audio briefing + DOCX document covering weather, X/Twitter trends, web trends, world news, politics, tech, local news, sports, markets, and crypto. macOS only (uses Apple TTS and afplay). Use when user asks for a news briefing, morning briefing, daily update, or similar.
Real-time news aggregator with Discord & Telegram push. Manage Jin10, BlockBeats, RSS, X KOLs, Polymarket, OpenNews via REST API.
Track and maximize credit card benefits (monthly, quarterly, yearly). Manage cards, log benefit usage, get reminders for expiring perks, see ROI summaries, and optimize spending categories for maximum rewards.
| name | auto-qa |
| description | 在 OpenClaw 平台执行网页自动 QA 测试(自动操作 + 采证 + 报告 + 修复提示包)。当用户要求做自动化回归、演示级测试、失败证据归档或生成可直接交给下一窗口的修复 Prompt 时使用。 |
用于一期 MVP:
场景定义组件demo/scenarios/*.json执行编排器src/skills/auto-qa/scripts/run_autoqa.pyopenclaw browser 执行动作。浏览器执行器(OpenClaw 内置能力)openclaw browser ...证据归档组件demo/artifacts/run-<run_id>/报告生成组件demo/reports/run-<run_id>/report.json、demo/reports/run-<run_id>/report.html修复任务包生成组件demo/reports/run-<run_id>/fix_plan.json、next_window_prompt.md、standby_prompt.txt稳定性增强组件src/skills/auto-qa/scripts/run_autoqa.py门禁断言组件src/skills/auto-qa/scripts/run_autoqa.pyerror -> 违规(critical)4xx -> 违规(critical)5xx -> 违规(blocker)gateViolationsgateViolationCountsBySeverityriskLevelreleaseDecision(GO / CONDITIONAL_GO / NO_GO)reviewStatus(consistent / needs_inspection)reviewConclusion(复核一致 / 复核需进一步检验)reviewFindings(需进一步检验时的具体项)Trace 对齐组件demo/reports/run-<run_id>/step_trace_map.json报告通知组件src/skills/auto-qa/scripts/run_autoqa.py(运行参数触发)report.html 全页图并发送到聊天频道。--notify-channel 时触发。--notify-target 时,自动从 openclaw status --json 最近会话推断目标(当前频道优先)。screenshot + console + network + tracereport.jsonreport.htmlfix_plan.jsonnext_window_prompt.mdstandby_prompt.txtdemo/
scenarios/
mvp_smoke.json
_generated/ ← agent 智能生成的临时 scenario 存放目录
artifacts/
run-<run_id>/
steps.json
console.json
network.json
health_checks.json
trace.zip
screenshots/
reports/
run-<run_id>/
report.json
report.html
report_full.png
step_trace_map.json
fix_plan.json
next_window_prompt.md
standby_prompt.txt
{
"name": "MVP Smoke",
"autoScreenshot": true,
"continueOnFailure": false,
"steps": [
{ "id": "step-001", "action": "open", "url": "https://example.com", "expected": "页面可访问" },
{ "id": "step-002", "action": "wait", "text": "Example Domain", "expected": "标题出现" },
{
"id": "step-003",
"action": "assert_text_contains",
"value": "Example Domain",
"expected": "正文包含关键字"
}
]
}
{
"name": "WeHub Smoke",
"gates": {
"enabled": true,
"minPassRate": 95,
"console": {
"errorAsFailure": true,
"ignoreMessagePatterns": ["known harmless error"]
},
"network": {
"sameOrigin4xxAsFailure": true,
"sameOrigin5xxAsFailure": true,
"thirdParty5xxAsFailure": false,
"ignoreUrlPatterns": ["/favicon.ico"],
"ignoreStatusCodes": [401]
}
},
"steps": []
}
{
"name": "Visual Demo",
"visual": {
"enabled": true,
"focusTabBeforeStep": true,
"preActionWaitMs": 220,
"postActionWaitMs": 420,
"highlightBeforeClick": true,
"highlightBeforeType": true,
"highlightWaitMs": 480
},
"steps": []
}
说明:
focusTabBeforeStep:每步前尽量聚焦受控 tab,减少后台节流导致的观感抖动。preActionWaitMs/postActionWaitMs:动作前后节奏等待,提升"可见点击/跳转"观感。highlightBeforeClick/highlightBeforeType:动作前高亮目标元素。opennavigatesnapshotclickhovertypepressbackscrollclick_link_same_originwaitevaluateassert_url_containsassert_text_containsscreenshotnooprun_autoqa.py 在加载 scenario 时自动执行 pre-flight 校验:
action 字段action 值必须在上述"支持动作"列表内,否则报错并列出全部合法值open/navigate 须含 url;click/hover/type 须含 ref;assert_* 须含 value校验在执行前触发,出错时给出明确的 step 索引和原因——不会默默失败。
生成 scenario 时请确保遵守上述约束。id 字段建议保留(格式 step-NNN),缺省时引擎会自动补全。
{
"exploration": {
"enabled": true,
"maxDepth": 3,
"maxChildrenPerNode": 5,
"maxPages": 30,
"maxDurationMinutes": 15,
"sameOriginOnly": true
},
"steps": [
{ "id": "step-010", "action": "click_link_same_origin", "depth": 2 },
{ "id": "step-011", "action": "back", "returnEdge": true, "depth": 2 }
]
}
说明:
depth:步骤所属探索层级(用于覆盖统计)。returnEdge=true:该步骤计入"返回边"覆盖统计(back 动作默认计入)。在仓库根目录执行:
python3 src/skills/auto-qa/scripts/run_autoqa.py \
--scenario-id wehub_demo \
--browser-profile openclaw \
--auto-start-browser
当用户表达"跑 QA / 再测一次 / 做自动回归 / 开始测试"等执行意图时,默认进入直接执行,不先回复"计划确认"。
正常流程不使用预设脚本。场景(scenario)应由 agent 智能生成。
优先级 1:用户给了测试要求(自然语言)
用户可能说:"测一下登录功能"、"检查购物车流程"、"用以下用例做自动 QA 测试:……"。
agent 必须:
openclaw browser open <url> 打开目标openclaw browser snapshot --interactive --labels 扫描页面结构demo/scenarios/_generated/<run-id>.json--scenario <path> --force-direct-scenario-path 执行严禁忽略用户的任何测试要求。 如果页面上找不到用户要求的元素,在 scenario 中仍要包含该步骤并标注 expected,让执行引擎报告失败——而不是静默跳过。
优先级 2:用户只给了 URL,没有具体要求
agent 必须:
openclaw browser open <url> 打开目标openclaw browser snapshot --interactive --labels 扫描页面结构demo/scenarios/_generated/<run-id>.json 并执行生成的 scenario 必须基于实际页面内容,不能凭空猜测。 每个 step 的 ref、url、text 必须来自 snapshot 的真实数据。
优先级 3(极端后备):snapshot 失败或浏览器不可用
仅当以上两种方式都失败时(如浏览器无法启动、目标不可达),才回退到预设脚本:
defaultScenarioId 或 generic_template预设脚本(scenario-id)仅用于以下场景:
常用参数:
--scenario <path>:直传 scenario JSON 路径(需配合 --force-direct-scenario-path)--scenario-id <id>:从注册表选择场景(仅调试/演示;默认注册表:demo/scenarios/registry.json)--scenario-registry <path>:指定场景注册表路径--scenario-var key=value:覆盖场景变量(可重复;用于模板场景的 {{start_url}}/{{start_domain}} 等占位)--allow-direct-scenario-path:允许接收 --scenario <path> 直传请求(默认关闭;默认会回退注册表默认场景)--force-direct-scenario-path:强制执行直传路径(智能生成场景时必须开启)--run-id <id>:手动指定 run id--output-root demo:输出根目录--allow-external-scenario:允许执行仓库 demo/scenarios 目录外的场景(默认关闭,防误跑)--allow-legacy-scenario:允许执行 meta.legacy=true 的旧场景(默认关闭)--no-trace:关闭 trace 录制--browser-bin <bin>:指定 OpenClaw 可执行名(默认 openclaw)--browser-cmd "<cmd>":指定完整命令前缀(例如 pnpm --dir src openclaw)--max-step-retries <n>:每步默认重试次数(默认 1)--retry-wait-ms <ms>:重试间隔(默认 800)--showcase-recheck:启用复核执行并与主执行结果对照(默认开启)--showcase-continue-on-failure:复核执行遇到差异后是否继续(默认开启)--showcase-max-step-retries <n>:复核执行默认重试次数(默认 0)--showcase-retry-wait-ms <ms>:复核执行重试间隔(默认 500)--showcase-time-budget-ms <ms>:复核执行时间预算(默认 90000,超时即提前收口并继续产出最终报告)--resume-from-step-id <stepId>:从指定步骤开始续跑--resume-from-run-id <runId>:从某次历史失败 run 的首个失败步骤续跑--resume-last-failed:从同一场景最近一次失败 run 自动续跑--health-check-interval <off|on-failure|each-step>:健康检查频率(默认 on-failure)--trace-start-mode <auto|immediate|after-first-step>:trace 启动时机(默认 auto)--notify-channel <channel>:自动发送报告截图到指定频道(支持 discord/.../auto/current,不依赖固定频道名)--notify-target <target>:频道目标(不传则自动推断最近会话目标)--notify-account <id>:可选 accountId--notify-message <text>:可选通知文案--notify-auto-current-channel:未显式指定频道/目标时,自动发到最近活跃会话(默认开启)--notify-max-session-age-ms <ms>:自动推断会话的最大"最近活跃时间"(默认 30 分钟)--cleanup-orphan-openclaw-processes:运行前自动清理多余 OpenClaw 专用 Chrome 进程(默认开启)最终形态执行约束(当前实现):
3;默认"失败优先截图"(analysisAutoScreenshot=false),保留 console/network/trace 全量采证。open,复核执行自动改为同 tab navigate,避免额外新开 tab。needs_inspection,不阻塞本轮交付。partial_timeout,并继续生成 report.html/report_full.png 与回传。执行超时建议(重要):
exec 调脚本时,必须设置 timeout >= 900 秒。你关心的"炫酷演示 + 不打断主画面工作"建议这样跑:
python3 src/skills/auto-qa/scripts/run_autoqa.py \
--scenario-id wehub_demo \
--browser-profile openclaw \
--auto-start-browser \
--max-step-retries 1 \
--health-check-interval on-failure
说明:
trace-start-mode=auto 下,若首步是 open/navigate,trace 会延后到第一步后启动,减少 about:blank 首屏干扰。report_full.png,兼容名 report_screenshot.png)。--no-notify-auto-current-channel 关闭)。/Users/chikakochou/OpenClaw/demo/scenarios/wehub_visual_demo.jsonwehub_demo(演示门禁配置,已忽略已知 index.css 404 噪音)wehub_release(发布判定,不忽略已知 4xx)运行示例(含自动发当前 Discord 频道):
python3 src/skills/auto-qa/scripts/run_autoqa.py \
--scenario-id wehub_demo \
--browser-profile openclaw \
--auto-start-browser
/Users/chikakochou/OpenClaw/demo/scenarios/generic_visual_template.jsongeneric_template{{start_url}}{{start_domain}}python3 src/skills/auto-qa/scripts/run_autoqa.py \
--scenario-id generic_template \
--scenario-var start_url=http://wehub.us/ \
--scenario-var start_domain=wehub.us \
--browser-profile openclaw \
--auto-start-browser
fix_plan.json:
next_window_prompt.md:可直接贴到下一窗口执行standby_prompt.txt:一句确认即可启动修复流程wehub-gate-sample-20260220-v2/Users/chikakochou/.openclaw/workspace/demo/reports/run-wehub-gate-sample-20260220-v2/report.json/Users/chikakochou/.openclaw/workspace/demo/reports/run-wehub-gate-sample-20260220-v2/report.htmlreleaseDecision = NO_GOriskLevel = highopenclaw browser trace start/stop 在嵌套子命令下丢失 --browser-profile 参数的问题。chrome)。trace start/stop 在 --browser-profile openclaw 下可正常生成 trace。wehub-trace-fix-20260221-v1 已验证 tracePath 存在且报告无 trace warning。openclaw browser 无法连接,请先启动 OpenClaw 网关/浏览器服务。click/type 依赖快照 ref,场景需要提供稳定 ref 或结合 wait/evaluate 先定位。