前言:测试维护的噩梦
作为一个全栈开发者,我最怕的就是维护E2E测试。每次UI改版,测试就批量报错;每次换个框架,测试脚本就得重写。
你是否也遇到过这些问题:
- Selenium选择器经常失效
- Appium在不同设备上行为不一致
- Playwright只能测Web,移动端还得另外配置
- 一个简单的登录流程要写50行测试代码
直到我开始尝试一种完全不同的方法:让AI直接控制应用进行测试。
什么是AI驱动的应用测试?
想象一下,你说"打开设置页面,开启暗黑模式,返回主页验证主题已切换",AI就会一步一步执行。
这就是 flutter-skill 的核心理念。它是一个基于MCP(Model Context Protocol)的服务器,包含253个工具,让Claude或其他AI能够:
- 视觉理解:通过截图"看懂"应用界面
- 智能交互:像人类一样点击、滑动、输入
- 跨平台适配:同一个测试描述在10个平台上都能运行
- 自动适应:UI改版后测试自动适配,无需修改
技术架构
MCP协议:AI工具的标准化接口
MCP是Anthropic推动的标准,让AI能够安全地调用外部工具。flutter-skill实现了253个MCP工具,覆盖:
{
"app_control": ["launch", "close", "background", "foreground"],
"ui_interaction": ["tap", "swipe", "scroll", "pinch", "rotate"],
"verification": ["screenshot", "element_exists", "text_contains"],
"device_control": ["volume", "brightness", "orientation", "network"]
}
相比之下:
- Playwright MCP: ~33个工具,仅支持Web
- Selenium Grid: 需要大量配置,不支持MCP
- Appium: 移动端专用,跨平台支持有限
性能数据
- 点击延迟:1ms(接近硬件极限)
- 截图延迟:31ms
- UI分析:2ms
- CDP连接:93ms
对比传统工具:Selenium 100-500ms,Appium 200-1000ms。
支持10个平台
Flutter、React Native、iOS、Android、Web、Electron、Tauri、KMP、.NET MAUI、Web CDP
实战对比
传统方式(Playwright)
await page.goto('https://app.example.com');
await page.waitForSelector('#register-button');
await page.click('#register-button');
await page.fill('[name=email]', 'test@example.com');
await page.fill('[name=password]', 'SecurePass123!');
await page.check('[name=terms]');
await page.click('button[type=submit]');
await page.waitForURL('**/welcome');
// ... 50行代码
AI方式(flutter-skill)
flutter-skill test "打开注册页面,填写邮箱和密码,同意条款,提交注册,验证欢迎页面"
代码量减少99.8%,维护成本为0。
测试通过率
在8个平台上运行181个测试场景,总体通过率99%(传统E2E通常60-80%)。
快速开始
# 安装
npm i -g flutter-skill
# 运行
flutter-skill test "描述你的测试场景"
也可以通过 pub.dev 安装(月下载量2K+):
dart pub global activate flutter_skill
项目地址
GitHub: github.com/ai-dashboad…
欢迎Star和贡献代码!目前19颗星,期待更多开发者一起推动AI测试工具的进化。