首页龙虾技能列表 › Flexible Web Tester — 智能UI测试

Flexible Web Tester — 智能UI测试

v1.0.2

支持 MCP 与 Python 双驱动,录制/回放/脚本三种模式,强制人工确认,生成报告并落盘,安全可控的 Web UI 自动化测试工作台。

0· 174·1 当前·1 累计
by @millerallen98 (Allen)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/14
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
该技能行为符合 Web UI 测试工具定位,但运行时指令对本地文件读取范围表述模糊,且会将生成的脚本/报告(可能含明文凭据)持久化落盘——存在过度权限,需谨慎。
评估建议
该技能功能属实(Web UI 测试),但使用前请注意两大风险: - 明确预检文件读取:询问或检查代理在环境检测时会读取哪些确切文件/路径。若未限定,可能任意读取用户文件——在修复前请拒绝或置于沙箱运行。 - 避免为“自动填充”提供真实凭据。若必须使用,请注意生成的 Python 脚本与报告会保存至磁盘且可能明文包含凭据;使用后请检查并安全删除或加密这些文件。建议改用“人工干预”登录模式以避免落盘机密。 额外预防措施: - 在受控/沙箱工作空间(空目录)运行,使 File System MCP 仅能访问预期路径。 - 在最终“确认”执行前,人工审阅生成的 {YYYYMMDD}_测试脚本.py。 - 如需配置 MCP 服务器,请手动修改,避免将敏感令牌复制到全局配置。 若作者更新 SKILL.md,(1) 明确安全的预检文件列表或仅用合成/本地探针,(2) 清晰警示凭据落盘风险或提供避免嵌入机密的选项,则可降低顾虑并提升信任度。...
详细分析 ▾
用途与能力
名称/描述与指令一致:Web UI 测试工具合理需要文件系统访问(读写测试用例与报告)、CLI 运行 Python 脚本、浏览器控制(Playwright)。让代理检查这些 MCP 能力符合声明用途。
指令范围
预检阶段要求代理“列出或读取一个已知存在的本地文件”,但未指定文件或限制路径——该模糊性可能导致读取任意用户文件。技能强制将生成的测试脚本与报告写入磁盘,并明确指示保存 Python 脚本(可能含凭据)。虽在执行前强制人工确认,降低了风险,但未指定的预检文件读取与自动落盘仍令人担忧。
安装机制
无安装规范且未提供代码文件,技能本身不会下载或安装任何内容,降低了安装时拉取任意代码的风险。
凭证需求
技能未预先请求平台凭据,属良好实践,但支持“自动填充”登录模式,会将用户提供的用户名/密码嵌入生成的脚本并落盘。除非明确警示并提供安全存储选项,否则明文持久化敏感凭据属于过度权限。预检的未指定文件读取也可能访问无关本地数据。
持久化与权限
always:false 且未请求更改其他技能或系统级配置。技能会指导用户在 ~/.openclaw/openclaw.json 中配置 MCP 条目,但未声明修改其他技能或要求永久提升权限。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.22026/3/18

更新 description 为更简洁的描述

● 可疑

安装命令 点击复制

官方npx clawhub@latest install flexible-web-tester
镜像加速npx clawhub@latest install flexible-web-tester --registry https://cn.clawhub-mirror.com

技能文档

阶段 0:MCP 环境自检 (Pre-flight Check) [强制逻辑]

当用户启动此技能时,你必须立即执行以下隐式环境检查:

  • 检查文件读写能力:尝试列出或读取一个已知存在的本地文件,验证 File System MCP 是否可用
  • 检查终端执行能力:执行 echo "test"python3 --version 验证 CLI MCP 是否可用
  • 检查浏览器控制能力:尝试调用 Playwright MCP 列出可用浏览器或获取浏览器状态

判定结果处理:

  • 如果所有三项工具均可用:输出简短的"环境就绪"提示,然后进入阶段 1
  • 如果缺失任何一项工具立即停止工作流,向用户输出以下警告(禁止继续执行任何后续步骤):
⚠️ 环境未就绪:我检测到缺少必要的 MCP 工具:
- [ ] 文件系统访问 (File System MCP):用于读写测试用例和报告
- [ ] 终端命令执行 (CLI MCP):用于运行 Python 测试脚本
- [ ] 浏览器控制 (Playwright MCP):用于操作网页
>
请在 ~/.openclaw/openclaw.jsonmcpServers 节点中配置以上三项服务后重启 OpenClaw。

阶段 1:欢迎与参数收集

环境检查通过后,输出结构化的欢迎面板并收集参数:

🤖 欢迎使用 Flexible Web Tester (灵活 Web 测试工作台)
>
我已准备好为你执行 Web UI 自动化测试。请按以下格式提供配置信息:
>
---
>
1️⃣ 测试目标:
(请输入目标 URL,例如:https://example.com,或具体的需求描述)
>
2️⃣ 测试模式:
- [1] 自由探索:无需用例,给定 URL 后自主漫游、点击、寻找潜在崩溃或报错
- [2] 需求驱动:给我一段功能需求,我将为你生成测试用例,经确认后执行
- [3] 用例驱动:直接给我现成的测试步骤,我将严格按步骤执行
>
3️⃣ 执行引擎:
- [A] MCP 直接驱动:AI 直接调用浏览器 MCP 进行操作(不生成代码文件)
- [B] Python 脚本驱动:Agent 先编写 .py 脚本,通过终端执行(适合复杂场景和复用)
>
4️⃣ 登录处理:
- [L1] 人工介入:执行到登录页面时暂停,等待你手动登录后继续
- [L2] 自动填写:提供用户名和密码,我自动完成登录流程
>
---
>
示例回复:测试目标:https://example.com,模式2,引擎B,自动填写,用户名test@example.com 密码123456

等待用户完整回复所有 4 个维度参数后再进入阶段 2。


阶段 2:规划与用例/代码落盘

根据用户提供的参数进行推演和生成:

引擎 A(MCP 直接驱动)

  • 生成自然语言测试步骤,每步包含:操作指令、目标元素、预期结果
  • 步骤示例:
  1. 导航至 https://example.com
  2. 等待页面加载完成
  3. 点击 "登录" 按钮(通过无障碍树定位)
  4. 在用户名输入框填写 test@example.com
  5. 在密码输入框填写 123456
  6. 点击 "提交" 按钮
  7. 验证页面跳转至 Dashboard
  

引擎 B(Python 脚本驱动)

  • 生成带有详尽注释的 Python + Playwright 代码
  • 必须包含:
- 浏览器启动配置(headless 可选) - 显式等待和重试逻辑 - 断言语句 - 异常捕获和截图保存 - main() 入口函数

强制落盘 1(必须执行): 调用 File System MCP,将方案保存到本地。

  • 文件命名规范
- 引擎 A:{YYYYMMDD}_测试用例.md - 引擎 B:{YYYYMMDD}_测试脚本.py
  • 文件路径{工作目录}/{文件名}
  • 文件内容要求
- 引擎 A:包含详细步骤、预期结果、边界条件说明 - 引擎 B:包含完整可运行的 Python 代码,顶部注释说明用途


阶段 3:强制人工确认 (安全锁) [绝对禁止跳过]

文件保存后,立即强制暂停,输出以下提示:

📝 方案已生成并保存至本地
>
📁 文件路径:{工作目录}/{YYYYMMDD}_测试用例.md..._测试脚本.py
>
---
>
请问是否确认执行?
- 回复「确认」开始执行测试
- 回复「修改」并说明具体修改意见,我将重新生成方案
- 回复「取消」终止此次测试
>
(在收到明确"确认"指令前,我绝不会调用浏览器或终端 MCP 触发实际执行)

绝对禁止事项:

  • 收到"确认"前,禁止调用任何浏览器操作工具
  • 收到"确认"前,禁止调用终端执行 Python 脚本
  • 收到"确认"前,禁止进行任何实质性的测试操作

阶段 4:动态执行与自愈

收到用户明确的「确认」后,按以下流程执行:

引擎 A 执行流程

  • 调用 Playwright MCP 启动浏览器
  • 按步骤逐一执行自然语言指令
  • 每步执行后读取页面状态进行验证

引擎 B 执行流程

  • 调用 CLI MCP 执行已保存的 Python 脚本
  • 命令示例:cd {工作目录} && python3 {YYYYMMDD}_测试脚本.py
  • 捕获脚本输出和返回码

自愈逻辑(通用)

当遇到执行报错时,触发以下自愈策略(最多尝试 2 次):

尝试次数自愈策略
第 1 次等待 2-3 秒后重试(应对网络延迟/异步加载)
第 2 次尝试滚动页面使元素进入可视区域,或关闭弹窗/遮罩层
  • 自愈成功:继续执行后续步骤
  • 自愈失败(2 次后):标记当前步骤为 FAIL,记录失败现场(截图/DOM),继续执行剩余步骤

阶段 5:报告导出

测试执行完成后,强制落盘 2(必须执行):

调用 File System MCP 生成并保存测试报告。

  • 文件命名规范{YYYYMMDD}_测试报告.md
  • 文件路径{工作目录}/{YYYYMMDD}_测试报告.md
  • 报告内容结构
# 📊 Web UI 自动化测试执行报告

基础信息

  • 测试目标 / URL: [填写]
  • 执行模式: [自由探索 / 需求驱动 / 用例驱动]
  • 执行引擎: [MCP 直接驱动 / Python 脚本驱动]
  • 登录处理: [人工介入 / 自动填写]
  • 执行时间: [YYYY-MM-DD HH:MM:SS]

整体状态

  • 结果: 🟢 PASS / 🔴 FAIL

执行明细

步骤操作预期结果实际结果状态
1.........
2.........

异常诊断(如有 FAIL)

  • 失败节点: [步骤编号]
  • 失败原因: [详细描述]
  • AI 自愈过程:
- 尝试 1:... → 结果 ... - 尝试 2:... → 结果 ...
  • 失败截图/日志: [如有]

修复建议

[针对发现的 Bug,给出可能的前端修复思路]

附件

  • 测试方案文件:{YYYYMMDD}_测试用例.md{YYYYMMDD}_测试脚本.py

向用户发送简短通知:

测试执行完成
>
📁 测试报告已保存至:{工作目录}/{YYYYMMDD}_测试报告.md
>
整体结果: 🟢 PASS / 🔴 FAIL(如有失败,请查看报告中的异常诊断部分)

触发场景

当用户提及以下内容时,主动应用此 skill:

  • Web UI 自动化测试
  • 浏览器测试
  • 端到端测试 (E2E)
  • Playwright 测试
  • 提及 "测试网站"、"测试页面"、"测试功能"
  • 提及 "OpenClaw"、"MCP 测试"
  • 提及 "flexible-web-tester" 或 "灵活测试工作台"

工具依赖声明

本技能正常工作需要以下 MCP 工具:

工具类型用途必选
File System MCP读写测试用例、脚本、报告文件
CLI / Terminal MCP执行 Python 测试脚本
Playwright MCP控制浏览器、执行网页操作
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务