使用 OpenClaw Skills + 录制回放功能,生成 Minium 测试脚本
解放双手,让 AI 帮你写自动化测试代码
🎯 你是不是也遇到过这些问题?
- 小程序测试全靠手工点,每次发版都要重复测试一遍
- 想写自动化测试,但 Minium 脚本太复杂,学不会
- 录制好的脚本乱七八糟,没法直接用在项目里
- 写测试用例花的时间比写业务代码还长
别慌,今天介绍一个神器:OpenClaw Minium 测试生成器技能 🚀
🤖 这是什么?
简单说,这是一个能自动把录制脚本转成规范测试用例的SKILLS。
下载地址
ClawHub 官方页面:https://clawhub.ai/yiziria/minium-test-generator
安装步骤
-
下载技能包
- 访问 ClawHub 页面,点击 “Download zip”
- 或直接用下载链接获取 ZIP 文件
-
解压到openclaw技能目录
# Windows PowerShell 示例 # 解压到 OpenClaw 技能目录 Expand-Archive -Path "minium-test-generator.zip" -DestinationPath "~/.openclaw/skills/minium-test-generator" -
验证安装
# 检查技能文件是否存在 Test-Path "~/.openclaw/skills/minium-test-generator/SKILL.md"
你只需要:
- 用微信开发者工具的录制功能录一遍操作流程
- 把录制脚本丢给 OpenClaw
- 它自动生成符合 Page Object 模式的测试代码
原来需要 2 小时的工作,现在 5 分钟搞定。
📋 实际效果展示
录制脚本(原始)
# 录制的脚本,又长又乱
import minium
import json,base64,os
from recordtools import touch
class FirstTest(minium.MiniTest):
def test(self):
self.logger.info("登录")
self.mark_step_start("relaunch_0")
self.app.relaunch("/pro/pages/homepage/group-homepage/group-homepage?scene=1&groupId=6&from=groupmessage")
self.capture("relaunch_0")
self.mark_step_start("step_1")
self.capture("tap_1")
element_is_exists = self.page.element_is_exists(xpath="/page-wrapper/view/view/view[1]/view[2]/view[1]/view[3]/view/management-card-panel/view/view[2]/view[2]")
if element_is_exists :
element = self.page.get_element_by_xpath("""/page-wrapper/view/view/view[1]/view[2]/view[1]/view[3]/view/management-card-panel/view/view[2]/view[2]""")
else :
element = self.page.get_element_by_xpath("//*",inner_text="""账号管理""")
element.tap()
self.page.wait_for(9)
ret = self.app.wait_util(2,20)
ret = self.app.wait_for_page("/pro/pages/home/leaders-management/leaders-management?scene=1&groupId=6&from=groupmessage")
self.assertTrue(ret,"校验当前操作的跳转是否正常--check_path_1")
self.logger.debug("[minitest replay] tap")
生成后的测试用例(规范)
# pages/login_page.py
class LoginPage:
def __init__(self, driver):
self.driver = driver
self.login_btn = 'xpath=//view[text()="登录"]'
self.phone_input = 'xpath=//input[1]'
self.password_input = 'xpath=//input[2]'
self.agree_btn = 'xpath=//view[text()="同意协议"]'
def login(self, phone, password):
self.tap(self.login_btn)
self.send_keys(self.phone_input, phone)
self.send_keys(self.password_input, password)
self.tap(self.agree_btn)
return self
# test_cases/test_login.py
def test_login_success(login_page):
"""测试登录成功"""
login_page.login('13800138000', '123456')
assert login_page.is_logged_in()
代码整洁度提升 300%,维护成本降低 80% 📉
🛠️ 使用步骤
第 1 步:准备环境
- 安装 Minium
- 安装 OpenClaw
- 准备录制脚本
- 准备测试用例目录,测试框架设计可以参考我之前的文章:https://developers.weixin.qq.com/community/business/doc/000a0c1d4d41a8e9e7506487c6b40d
第 2 步:录制操作流程
- 打开微信开发者工具
- 进入「测试」→「自动化测试」
- 点击「录制」按钮
- 在模拟器上操作一遍要测试的流程
- 停止录制,导出Minium脚本,导出的文件下有个时间戳为名的文件,打开复制里面的py文件内容
第 3 步:调用 OpenClaw 技能
在 OpenClaw 中发送:
帮我生成 Minium 测试用例
录制脚本:[粘贴录制的脚本]
第 4 步:等待生成
AI 会自动:
- ✅ 分析录制脚本的操作步骤
- ✅ 生成 Page Object 页面类
- ✅ 生成测试用例文件
- ✅ 生成用例说明文档
- ✅ 添加必要的断言和等待
第 5 步:运行测试
# 执行生成的测试
minitest -m testcase.XXXX --case test_XXXX -c config.json -g
💡 核心优势
| 对比项 | 手工写测试 | 用 OpenClaw 技能 |
|---|---|---|
| 时间成本 | 2-3 小时/用例 | 10-15 分钟/用例 |
| 代码规范 | 因人而异 | 统一 PO 模式 |
| 元素定位 | 容易写错 | 自动优化策略 |
| 等待处理 | 容易遗漏 | 智能添加 |
| 维护成本 | 高 | 低 |
🔧 技能特点
1. 强制询问目录
生成前先问:
- 测试用例目录在哪里?
- 是新建项目还是添加到现有目录?
避免覆盖已有代码 ✅
2. 智能分析现有结构
如果是现有项目:
- 自动阅读已有的 Page Object
- 遵循现有命名规范
- 不引入冲突的代码风格
3. PO 模式标准化
生成的代码符合 Page Object 设计模式:
- 每个页面对应一个类
- 元素定位与操作分离
4. 元素定位策略优化
# 优先级:CSS Selector > XPath > Text
# 自动添加备用定位策略
self.login_btn = {
'css': '.login-btn',
'xpath': '//view[text()="登录"]',
'text': '登录'
}
📁 生成的文件结构
tests/
├── pages/ # Page Object 层
│ ├── __init__.py
│ ├── login_page.py # 登录页面
│ ├── home_page.py # 首页
│ └── README.md # 页面类说明
├── test_cases/ # 测试用例文档
│ ├── login.md # 登录用例说明
│ └── purchase.md # 购买用例说明
├── conftest.py # Pytest 配置
├── run_test.py # 测试运行脚本
├── test_login.py # 登录测试
└── test_purchase.py # 购买测试
结构清晰,新人也能快速上手 👍
⚠️ 注意事项
1. 录制脚本要干净
- 录制前清空无关操作
- 不要录错,错了重新录
- 每个用例录一个完整流程
2. 元素定位要准确
- 生成后检查元素定位是否正确
- 特殊元素可能需要手动调整
- 动态 ID 的元素需要特殊处理
3. 断言需要补充
- AI 生成的断言是基础的
- 业务逻辑断言需要手动添加
- 边界条件需要额外测试
4. 不要盲目信任
- 生成的代码要 review
- 先跑通再提交
- 复杂场景需要人工优化
💬 结语
自动化测试不是可选项,是必选项。
但写测试不应该是痛苦的事。用好工具,让 AI 帮你承担重复劳动,你专注于更有价值的测试设计和质量分析。
测试写得好,下班下得早 🏃♂️

👍干货满满