Flutter自动化测试框架

一个基于WebDriverIO和GitHub Actions的iOS Flutter自动化测试框架,支持MCP集成和Allure报告。

  • by inasribrahim
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 inasribrahim/Flutter-WebDriverIO-MCP

使用说明

Flutter WebDriver IO MCP

一个使用WebDriver IO和GitHub Actions的全面的iOS Flutter自动化框架,专为MCP(模型上下文协议)集成而设计。

🚀 特性

  • iOS模拟器测试:支持iPhone 15、14、13和iPad Pro,实现iOS自动化
  • Flutter集成:使用WebDriver IO进行原生Flutter应用程序测试
  • GitHub操作CI/CD:具有矩阵测试的自动化测试管道
  • 诱惑报告:全面的测试报告和工件管理
  • MCP集成:支持AI驱动测试的模型上下文协议

📱 支持的设备

  • iPhone 15(iOS 17.2)
  • iPhone 14(iOS 16.4)
  • iPhone 13(iOS 15.5)
  • iPad Pro(11英寸)(iOS 17.2)

🛠 技术栈

  • WebDriver IO:Web和移动自动化框架
  • Appium:移动自动化服务器(v2.22.0+)
  • 飘动:跨平台移动框架
  • GitHub操作:CI/CD自动化
  • 魅力:测试报告框架
  • Node.js:运行时环境(v20+)

📁 项目结构

├── .github/workflows/     # GitHub Actions workflows
│   └── ios-flutter-automation.yml
├── ios/                   # iOS-specific files
│   ├── ios-flutter-test-runner.js
│   ├── ios-flutter-capabilities.json
│   └── allure-flutter-framework.js
├── tests/                 # Test files
│   ├── flutter-appium-test.js
│   ├── flutter-login-interaction.js
│   └── mcp_flutter_login_test.js
├── utils/                 # Utility functions
│   ├── flutter-element-discovery.js
│   └── flutter-login-inspector.js
├── framework/             # Framework files
│   └── flutter-allure-test-runner.js
├── capabilities/          # Device capabilities
│   ├── flutter-capabilities.json
│   └── ios-flutter-capabilities.json
├── config/                # Configuration files
│   └── settings.json
└── docs/                  # Documentation
    └── MCP-APPIUM-USAGE.md

🚀 快速开始

先决条件

  • macOS(用于iOS测试)
  • Xcode 15.2+
  • Node.js 20+
  • npm或纱线

安装

  1. 克隆存储库:
git clone https://github.com/inasribrahim/Flutter-WebDriverIO-MCP.git
cd Flutter-WebDriverIO-MCP
  1. 安装依赖项:
npm install
  1. 安装Appium和驱动程序:
npm install -g appium@2.22.0
appium driver install xcuitest
appium driver install flutter

运行测试

本地执行

# Run iOS tests
npm run test:ios

# Run specific test
npx wdio run ios/ios-flutter-test-runner.js

GitHub操作

工作流在以下情况下自动运行:

  • 推送到主分支
  • 拉取请求
  • 手动触发

📊 测试报告

  • 诱惑报告:测试执行后自动生成
  • 截图:在测试失败时捕获
  • 人工制品:在GitHub操作运行中可用
  • GitHub 页面:自动部署的报告

🔧 配置

iOS功能

在中配置iOS设备 capabilities/ios-flutter-capabilities.json:

{
  "platformName": "iOS",
  "platformVersion": "17.2",
  "deviceName": "iPhone 15",
  "automationName": "Flutter",
  "app": "path/to/your/app.app"
}

测试设置

修改中的测试行为 config/settings.json:

{
  "timeout": 30000,
  "retries": 2,
  "screenshots": true,
  "allure": true
}

🤖 MCP集成

该框架包括用于AI驱动测试自动化的模型上下文协议(MCP)集成:

  • 智能元素发现
  • 动态测试用例生成
  • 自动化测试维护
  • 自然语言测试描述

📝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🆘 支持

🏗 路线图

  • []Android支持
  • []云设备集成
  • []增强的MCP功能
  • []性能测试
  • []视觉回归测试

由WebDriver IO+Flutter+GitHub Actions提供技术支持 🚀