搜尋套件、儲存庫與 APP 分類

套件詳情v0.2.2

patrol_mcp

一個MCP伺服器,可賦能AI助理在Flutter中控制、自動化和監控互動式巡邏開發會話。

LinuxmacOSWindows
近 30 天下載
6.3萬
喜歡數
30
Pub 分數
160

安裝套件

flutter pub add patrol_mcp

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

Patrol MCP 是一個伺服器端套件,讓 AI 助手能管理、自動化和監控 Flutter 應用中的互動式開發會話。專為使用 Patrol 的開發者設計,此套件整合了語音輸入、語音轉文字(STT)與文字轉語音(TTS)功能,以簡化測試與除錯工作流程。伺服器可在 Linux、macOS 與 Windows 上執行,支援透過自然語言指令無縫控制 Flutter 應用的互動。它透過在開發週期中實現免手持操作來提升生產力。

適用情境

  • 透過語音指令進行自動化 UI 測試
  • 開發期間的免持調試
  • 即時監控Flutter應用行為
  • 語音控制會話自動化
  • 與人工智慧驅動的開發助手整合

主要特色

  • 語音驅動的 Flutter 會話控制
  • 支援語音辨識(STT)與語音合成(TTS)整合
  • 跨平台伺服器部署
  • 即時互動監控
  • 無縫整合 Patrol 生態系統

適合對象

  • 使用 Patrol 的 Flutter 開發人員
  • AI輔助開發團隊
  • 測試自動化工程師
  • 以可存取性為重點的開發工作流程
  • 注重效率的DevOps環境

使用建議

  • 需要設定 Patrol 才能獲得完整功能
  • 僅限 Flutter 開發環境
  • 需要相容的AI助理基礎設施
  • 需要平台特定的伺服器設定
  • 可能需要額外的網路設定才能實現遠端存取

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

Patrol

patrol on pub.dev patrol_cli on pub.dev patrol_finders on pub.dev patrol_mcp on pub.dev patrol_discord code style patrol_github_stars patrol_x

A powerful, multiplatform E2E UI testing framework for Flutter apps that overcomes the limitations of integration_test by handling native interactions. Developed by LeanCode since 2022, battle-tested and shaped by production-grade experience.

Patrol promotional graphics

Learn more about Patrol:

How can we help you:

Patrol is an open-source framework created and maintained by LeanCode. However, if your company wants to scale fast and accelerate Patrol’s adoption, we offer a set of value-added services on top of the core framework.

You can find out more below:

[!NOTE] Patrol 4.7.0 adds Swift Package Manager support for iOS and macOS! If you migrate your project to SPM, a few small setup changes are needed — see the iOS setup guide for details.

Patrol custom finders

Flutter's finders are powerful, but not very intuitive to use.

We took them and made something awesome.

Thanks to Patrol's custom finders, you'll take your tests from this:

testWidgets('signs up', (WidgetTester tester) async {
  await tester.pumpWidget(AwesomeApp());
  await tester.pumpAndSettle();

  await tester.enterText(
    find.byKey(Key('emailTextField')),
    'charlie@root.me',
  );
  await tester.pumpAndSettle();

  await tester.enterText(
    find.byKey(Key('nameTextField')),
    'Charlie',
  );
  await tester.pumpAndSettle();

  await tester.enterText(
    find.byKey(Key('passwordTextField')),
    'ny4ncat',
  );
  await tester.pumpAndSettle();

  await tester.tap(find.byKey(Key('termsCheckbox')));
  await tester.pumpAndSettle();

  await tester.tap(find.byKey(Key('signUpButton')));
  await tester.pumpAndSettle();

  expect(find.text('Welcome, Charlie!'), findsOneWidget);
});

to this:

patrolTest('signs up', (PatrolIntegrationTester $) async {
  await $.pumpWidgetAndSettle(AwesomeApp());

  await $(#emailTextField).enterText('charlie@root.me');
  await $(#nameTextField).enterText('Charlie');
  await $(#passwordTextField).enterText('ny4ncat');
  await $(#termsCheckbox).tap();
  await $(#signUpButton).tap();

  await $('Welcome, Charlie!').waitUntilVisible();
});

Learn more about custom finders in the docs!

Patrol's custom finders are also available standalone in the patrol_finders package.

Patrol native automation

Flutter's default integration_test package can't interact with the OS your Flutter app is running on. This makes it impossible to test many critical business features, such as:

  • granting runtime permissions
  • signing into the app which through WebView or Google Services
  • tapping on notifications
  • much more!

Patrol's native automation feature solves these problems:

void main() {
  patrolTest('showtime', (PatrolIntegrationTester $) async {
    await $.pumpWidgetAndSettle(AwesomeApp());
    // prepare network conditions
    await $.platform.mobile.enableCellular();
    await $.platform.mobile.disableWifi();

    // toggle system theme
    await $.platform.mobile.enableDarkMode();

    // handle native location permission request dialog
    await $.platform.mobile.selectFineLocation();
    await $.platform.mobile.grantPermissionWhenInUse();

    // tap on the first notification
    await $.platform.mobile.openNotifications();
    await $.platform.mobile.tapOnNotificationByIndex(0);
  });
}

CLI

See packages/patrol_cli.

The CLI is needed to enable Patrol's native automation feature in integration tests. It also makes development of integration tests much faster thanks to [Hot Restart].

To run widget tests, you can continue to use flutter test.

Package

See packages/patrol.

CI/CD Workflows

See .github/WORKFLOWS.md for detailed documentation about all GitHub Actions workflows, including test schedules, Flutter versions, and deployment pipelines.

Patrol contracts generator

  1. (Optionally) add new request type:
class OpenAppRequest {
  late String appId;
}
  1. Add new method to NativeAutomator:
abstract class NativeAutomator<IOSServer, AndroidServer, DartClient> {
  ...
  void openApp(OpenAppRequest request);
  ...
}
  1. Run gen_from_schema script, few files will be updated

Develop patrol_cli

If you have previously activated patrol_cli run:

dart pub global deactivate patrol_cli

then

cd packages/patrol_cli
flutter pub global activate -s path .

🛠️ Maintained by LeanCode

This package is built with 💙 by LeanCode. We are top-tier experts focused on Flutter Enterprise solutions.

Why LeanCode?
  • Creators of Patrol – the next-gen testing framework for Flutter.

  • Production-Ready – We use this package in apps with millions of users.

  • Full-Cycle Product Development – We take your product from scratch to long-term maintenance.


Need help with your Flutter project?

👉 Hire our team   •   Check our other packages

所屬分類

依賴

依賴清單 8 項

原始碼儲存庫

使用此套件的專案

暫無相關資料。

所在榜單