패키지, 저장소 및 앱 카테고리 검색

패키지 상세v0.2.2

patrol_mcp

Flutter에서 인터랙티브한 패트롤 개발 세션을 제어하고 자동화하며 모니터링할 수 있도록 AI 어시스턴트를 강화하는 MCP 서버입니다.

LinuxmacOSWindows
30일 다운로드
6.3만
좋아요
30
Pub 점수
160

패키지 설치

flutter pub add patrol_mcp

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Patrol MCP는 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 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.

순위