From 94da30c98e561dc17ffc46d8a4fd7d088d5f53b0 Mon Sep 17 00:00:00 2001 From: salmank Date: Sun, 4 Oct 2026 06:01:17 +0530 Subject: [PATCH 1/7] docs(flutter): migrate FlutterTestingSidebar onto stage + dedicated sidebar Port the FlutterTestingSidebar changes from restructure-docs onto stage: - Update 5 Flutter docs; add flutter-agent-skills - Restructure the FlutterTestingSidebar block into a single "Getting Started" category (adds test-flutter-apps and flutter-agent-skills) - Make Flutter a dedicated sidebar (main-menu link + exported sidebar) in sidebars-unified.js, mirroring Test Manager Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/appium-flutter-integration.md | 24 +-- docs/flutter-agent-skills.md | 203 ++++++++++++++++++ docs/flutter-supported-capabilities.md | 7 +- ...ed-with-flutter-dart-android-automation.md | 102 +++------ ...tarted-with-flutter-dart-ios-automation.md | 107 +++------ docs/testing-flutter-apps.md | 62 +----- sidebars-unified.js | 8 +- sidebars.js | 30 ++- 8 files changed, 309 insertions(+), 234 deletions(-) create mode 100644 docs/flutter-agent-skills.md diff --git a/docs/appium-flutter-integration.md b/docs/appium-flutter-integration.md index d80f4c025..5937ffaf6 100644 --- a/docs/appium-flutter-integration.md +++ b/docs/appium-flutter-integration.md @@ -1,8 +1,8 @@ --- id: appium-flutter-integration -title: Appium Flutter Integration Driver Testing -sidebar_label: Flutter Integration Driver -description: Guide to testing Flutter apps using Appium Flutter Integration Driver on TestMu AI real device cloud. +title: How to Test Flutter Apps With Appium on TestMu AI +sidebar_label: "Appium Flutter Integration Driver Testing" +description: Test Flutter apps using the Appium Flutter Integration Driver on TestMu AI real device cloud, across Android and iOS. keywords: - flutter app testing - appium flutter integration @@ -14,16 +14,17 @@ url: https://www.testmuai.com/support/docs/appium-flutter-integration/ site_name: TestMu AI slug: appium-flutter-integration/ canonical: https://www.testmuai.com/support/docs/appium-flutter-integration/ +toc_max_heading_level: 2 --- import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys"; -import RealDeviceTag from '../src/component/realDevice'; -import VirtualDeviceTag from '../src/component/virtualDevice'; import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; +import RealDeviceTag from '@site/src/component/realDevice'; +import VirtualDeviceTag from '@site/src/component/virtualDevice'; import VerifiedTag from '@site/src/component/verifiedTag'; + +# How to Run Flutter Tests With Agent Skills on TestMu AI +--- + + +Flutter Agent Skills on let your AI coding assistant generate production-ready Flutter and Dart mobile automation from natural-language prompts. The flutter-skill package teaches assistants correct project structure, Dart dependencies, and driver configuration, then runs tests on real devices. + +Instead of manually wiring up your Flutter test project, use **Agent Skills** to let your AI coding assistant generate production-ready Flutter and Dart mobile automation for you. The [flutter-skill](https://github.com/LambdaTest/agent-skills/tree/main/flutter-skill) is part of [TestMu AI Agent Skills](https://github.com/LambdaTest/agent-skills/) - structured packages that teach AI assistants how to write production-grade test code and run it on real devices. + +## What Agent Skills Are +--- + +Self-contained packages of instructions, code patterns, and configurations for a specific testing framework. + +Once installed, your AI assistant works like a senior mobile QA automation architect with knowledge of: + +- Proper Flutter integration test and Appium Flutter driver project structure +- Correct Dart dependencies and driver configuration +- Both local and TestMu AI real-device cloud execution patterns +- Common pitfalls and debugging approaches +- CI/CD integration with GitHub Actions + +## Prerequisites +--- + +Make sure you have the following set up before you start. + +1. [Create a TestMu AI account](https://www.testmuai.com/register/) if you don't have one. +2. Get your **Username** and **Access Key** from the [TestMu AI Dashboard](https://www.testmuai.com/login/?redirectTo=https://accounts.lambdatest.com/dashboard). +3. Install an AI coding assistant: [Claude Code](https://claude.ai/code), [GitHub Copilot](https://github.com/features/copilot), [Cursor](https://cursor.sh/), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or any compatible tool. + +## Step 1: Install the Flutter Agent Skill +--- + +Clone the repository and copy the Flutter skill into your AI tool's skills directory. + +```bash +git clone https://github.com/LambdaTest/agent-skills.git + +# For Claude Code +cp -r agent-skills/flutter-skill .claude/skills/ + +# For Cursor +cp -r agent-skills/flutter-skill .cursor/skills/ + +# For GitHub Copilot +cp -r agent-skills/flutter-skill .github/skills/ + +# For Gemini CLI +cp -r agent-skills/flutter-skill .gemini/skills/ +``` + +:::tip +Install **all available framework skills** at once by cloning the repository directly into your tool's skills directory (e.g., `.claude/skills/`, `.cursor/skills/`). +::: + +## Step 2: Set Your Credentials +--- + +Add your TestMu AI credentials as environment variables so the generated tests can authenticate with the real device cloud. + +Visit the [TestMu AI Dashboard](https://www.testmuai.com/login/?redirectTo=https://accounts.lambdatest.com/dashboard), navigate to the left sidebar, and select **Credentials**. Copy your **Username** and **Access Key**, then run: + +```bash +export LT_USERNAME="YOUR_LAMBDATEST_USERNAME" +export LT_ACCESS_KEY="YOUR_LAMBDATEST_ACCESS_KEY" +``` + +## Step 3: Run Your First Test +--- + +Ask your AI assistant to write tests in natural language. + +``` +"Write a Flutter integration test for my app's login screen and run it on TestMu AI real devices" +``` + +``` +"Set up an Appium Flutter driver project in Dart and run it on TestMu AI" +``` + +``` +"Run my Flutter test across a Pixel 7 and an iPhone 15 in parallel on TestMu AI, tag the build as 'release-v1.0'" +``` + +The Agent Skill automatically handles: + +1. **Project setup** - Creates the right Flutter/Dart dependencies, driver configuration, and project structure +2. **Approach detection** - Maps your request to Flutter integration tests or the Appium Flutter driver +3. **Execution target** - Configures local, real-device, or virtual-device execution on TestMu AI based on your request +4. **Best practices** - Uses stable finders, proper waits, and reliable synchronization patterns + +## What's Included in the Flutter Skill +--- + +A breakdown of everything the skill package contains. + +``` +flutter-skill/ +├── SKILL.md +└── reference/ + ├── playbook.md + └── advanced-patterns.md +``` + +| Section | Details | +|---------|---------| +| **Project Setup** | Dart dependencies, driver configuration, project structure | +| **Core Patterns** | Complete, runnable code examples with best practices | +| **Cloud Integration** | TestMu AI real-device capabilities and app-upload configuration | +| **CI/CD Integration** | GitHub Actions workflows with reporting and parallel execution | +| **Debugging Guide** | Common build and driver errors mapped to solutions | +| **Best Practices** | Actionable recommendations for production Flutter test code | + +## Supported AI Tools +--- + +Pick the tool you use and install the skill to the corresponding path. + +| Tool | Type | Installation Path | +|------|------|-------------------| +| Claude Code | CLI | `.claude/skills/` | +| GitHub Copilot | Extension | `.github/skills/` | +| Cursor | IDE | `.cursor/skills/` | +| Gemini CLI | CLI | `.gemini/skills/` | +| Codex CLI | CLI | `.codex/skills/` | +| OpenCode | CLI | `.opencode/skills/` | +| Claude.ai | Web | Settings > Features > Skills | + +## Next Steps +--- + +Continue with these related guides: + +- [Run Your First Flutter Test](/support/docs/testing-flutter-apps/) +- [Flutter Supported Capabilities](/support/docs/flutter-supported-capabilities/) +- [Appium Flutter Integration Driver Testing](/support/docs/appium-flutter-integration/) + + diff --git a/docs/flutter-supported-capabilities.md b/docs/flutter-supported-capabilities.md index 49a7e4119..e865e02eb 100644 --- a/docs/flutter-supported-capabilities.md +++ b/docs/flutter-supported-capabilities.md @@ -1,6 +1,6 @@ --- id: flutter-supported-capabilities -title: Flutter Supported Capabilities +title: Flutter Supported Capabilities on TestMu AI sidebar_label: Supported Capabilities description: Now you can run your Flutter framework on TestMu AI online grid of 3000+ real desktop browsers and real operating systems with its supported capabilities. keywords: @@ -15,6 +15,7 @@ url: https://www.testmuai.com/support/docs/flutter-supported-capabilities/ site_name: TestMu AI slug: flutter-supported-capabilities/ canonical: https://www.testmuai.com/support/docs/flutter-supported-capabilities/ +toc_max_heading_level: 2 --- import CodeBlock from '@theme/CodeBlock'; @@ -39,7 +40,7 @@ import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; },{ "@type": "ListItem", "position": 3, - "name": "Espresso Supported Capabilities", + "name": "Flutter Supported Capabilities on TestMu AI", "item": `${BRAND_URL}/support/docs/flutter-supported-capabilities/` }] }) @@ -103,7 +104,7 @@ import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; }) }} /> -This document provide details about the features and capabilities supported for Espresso Framework on . +Flutter supported capabilities on TestMu AI let you configure Flutter mobile app tests on real Android devices, controlling the app, test suite, device, video, timeouts, device logs, build name, permissions, geolocation, GPS coordinates, and Bluetooth for reliable end-to-end automation runs. | Capability Name | Data Type | Description | |------|-----------|-------------| diff --git a/docs/getting-started-with-flutter-dart-android-automation.md b/docs/getting-started-with-flutter-dart-android-automation.md index 7186853fa..c3471e86e 100644 --- a/docs/getting-started-with-flutter-dart-android-automation.md +++ b/docs/getting-started-with-flutter-dart-android-automation.md @@ -1,7 +1,7 @@ --- id: getting-started-with-flutter-dart-android-automation -title: Flutter Dart Testing On TestMu AI - Android -sidebar_label: Flutter Dart Android +title: How to Run Flutter Dart Tests on TestMu AI - Android +sidebar_label: "Flutter Dart Testing - Android" description: This guide shows you how to run your first Flutter Dart test on 5000+ real Android devices using TestMu AI's Real Device Cloud. keywords: - flutter @@ -13,15 +13,15 @@ url: https://www.testmuai.com/support/docs/getting-started-with-flutter-dart-and site_name: TestMu AI slug: getting-started-with-flutter-dart-android-automation/ canonical: https://www.testmuai.com/support/docs/getting-started-with-flutter-dart-android-automation// +toc_max_heading_level: 2 --- import CodeBlock from '@theme/CodeBlock'; import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys"; -import RealDeviceTag from '../src/component/realDevice'; -import VirtualDeviceTag from '../src/component/virtualDevice'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; +import RealDeviceTag from '@site/src/component/realDevice'; import VerifiedTag from '@site/src/component/verifiedTag'; @@ -42,7 +42,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; },{ "@type": "ListItem", "position": 3, - "name": "Getting Started With Flutter Tests on TestMu AI", + "name": "How to Run Flutter Dart Tests on TestMu AI - Android", "item": `${BRAND_URL}/support/docs/getting-started-with-flutter-dart-android-automation/` }] }) @@ -220,12 +220,16 @@ import VerifiedTag from '@site/src/component/verifiedTag'; } ]) }} /> - -Flutter, an open-source UI toolkit created by Google, is a popular choice among developers to build natively compiled applications for mobile, web, and desktop from a single codebase. With Dart as its programming language, Flutter enables fast development of beautiful apps with a highly productive, extensible and open-source set of features. -In this guide, we will explore how to run your first Flutter Dart test on an Android device using the Real Device Cloud. By combining the capabilities of Flutter Dart and , you can ensure the proper functioning of your app across different devices and make your app more reliable and robust. + -## Prerequisites for Getting Started +Running your first Flutter Dart test on TestMu AI automates Flutter apps on real Android devices in the cloud. Install the Flutter SDK, set credentials, upload the sample app and test suite, then execute and review results on the dashboard. + +## Flutter Dart Testing on Android + +In this section, we will run your first Flutter Dart test on an **Android** device using the Real Device Cloud. + +### Prerequisites for Getting Started 1. Flutter SDK installed on your system 2. You will need a username and access key. To obtain your access credentials, [purchase a plan](https://billing.lambdatest.com/billing/plans) or access the [automation dashboard](https://www.testmuai.com/login/?redirectTo=https://appautomation.lambdatest.com/). @@ -237,9 +241,9 @@ If you do not have any **Flutter Android** app (.apk) and an **Flutter Test Suit ::: -## Run Your First Test +### Run Your First Test -### Step 1: Create your Android Flutter app and test suite for testing +#### Step 1: Create your Android Flutter app and test suite for testing For testing, you need to build a Flutter app and test suite. You can create Flutter applications and test suites using either Flutter cli or Gradlew. The steps below demonstrate how to create apks with Gradlew. - Create an instrumentation test file in your application's directory `android/app/src/androidTest/java/com/example/lambdatestSampleApp/`. Replace **com**, **example**, and **lambdatestSampleApp** values with those from your app's package name. @@ -316,7 +320,7 @@ Next, look for gradlew execution in the logs. The above command generates a grad gradlew --full-stacktrace --info -Pverbose=true -Ptarget-platform=android-arm64 -Ptarget=YOUR_APP_PATH/lib/main.dart -Pbase-application-name=android.app.Application -Pdart-obfuscation=false -Pextra-front-end-options=--no-sound-null-safety -Ptrack-widget-creation=true -Ptree-shake-icons=false -Pfilesystem-scheme=org-dartlang-root assembleDebug ``` -### Step 2: Upload Your Application +#### Step 2: Upload Your Application Upload your **android** application (.apk file) to the servers using our **REST API**. You need to provide your **Username** and **AccessKey** in the format `Username:AccessKey` in the **cURL** command for authentication. Make sure to add the path of the **appFile** in the cURL request. Here is an example cURL request to upload your app using our REST API: @@ -358,7 +362,7 @@ Response of above cURL will be a **JSON** object containing the `App URL` of the ::: -### Step 3: Uploading Test Suite +#### Step 3: Uploading Test Suite Upload your **test suite** (.apk file) to the servers using our **REST API**. You need to provide your **Username** and **AccessKey** in the format `Username:AccessKey` in the **cURL** command for authentication. Make sure to add the path of the **appFile** in the cURL request. Here is an example cURL request to upload your app using our REST API: @@ -400,12 +404,12 @@ Response of above cURL will be a **JSON** object containing the `App URL` of the ::: -### Step 4: Executing The Test +#### Step 4: Executing The Test -#### Basic Authentication +##### Basic Authentication :::info -You will need base64 encoded authentication in order to execute your Espresso automation test suite. You need to enter your username:accesskey **[here](https://mixedanalytics.com/knowledge-base/api-connector-encode-credentials-to-base-64/)** in order and click on encode to generate the base64 authentication. Take note of the **base64** encoded authentication which needs to be added in the next step. +You will need base64 encoded authentication in order to execute your Flutter automation test suite. You need to enter your username:accesskey **[here](https://mixedanalytics.com/knowledge-base/api-connector-encode-credentials-to-base-64/)** in order and click on encode to generate the base64 authentication. Take note of the **base64** encoded authentication which needs to be added in the next step. ::: @@ -416,7 +420,7 @@ You will need base64 encoded authentication in order to execute your Espresso au -#### Execute Command +##### Execute Command Once you have uploaded your app and test suite, you need to you can execute your test by running the following command: @@ -424,12 +428,12 @@ Once you have uploaded your app and test suite, you need to you can execute your Make sure to enter your **basic authentication**, **app url** (generated in the first step) and **testSuite url** (generated in the second step) in the below command. ::: - - + +
@@ -454,8 +458,10 @@ curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/f + +
- + ```bash curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/flutter/android/build" --header "Content-Type: application/json" --header "Authorization: Basic " --data-raw "{\"app\" : \"lt://APP_ID\",\"testSuite\": \"lt://APP_ID\",\"device\" : [\"Pixel 6-12\"], \"deviceLog\": true,\"network\": false,\"build\" : \"Sample-Flutter\"}" @@ -467,12 +473,12 @@ curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/f -### Step 5: View Test Execution +#### Step 5: View Test Execution Once you have run your tests, you can view the test execution along with logs. You will be able to see the test cases passing or failing. You can view the same at [ Automation](https://www.testmuai.com/login/?redirectTo=https://appautomation.lambdatest.com/build). -## Running Tests in Parallel +### Running Tests in Parallel You can run tests in parallel on multiple devices by passing the device name in comma separated format in the execute command as show below: @@ -498,7 +504,7 @@ Do note that Flutter builds when run in parallel, result in separate builds bein ::: -## Auto-Grant Permissions for Android Apps +### Auto-Grant Permissions for Android Apps While testing Android apps, user might need to handle various pop-ups or dialogs asking for permissions like contacts, notifications, photos, etc. @@ -522,54 +528,6 @@ curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/f }' ``` - - - -## Using the Flutter Testing Agent Skill with TestMu AI -*** - -The [flutter-testing-skill](https://github.com/LambdaTest/agent-skills/tree/main/flutter-testing-skill) is a part of [TestMu AI Skills](https://github.com/LambdaTest/agent-skills/) that guide AI coding assistants in generating production-ready test automation. - -The flutter-testing-skill package includes: - - - -``` -flutter-testing-skill/ -├── SKILL.md -└── reference/ - ├── playbook.md - └── advanced-patterns.md -``` - -It provides structured guidance for: - -* Project structure and setup -* Dependency configuration -* Local execution -* TestMu AI cloud execution -* Debugging patterns -* CI/CD integration - - -### Installing Flutter Testing Agent Skill -*** - -Install a Flutter Testing Agent Skill using the command below: - - - -``` -# Clone the repo and copy the skill you need -git clone https://github.com/LambdaTest/agent-skills.git -cp -r agent-skills/flutter-testing-skill .claude/skills/ - -# Or for Cursor / Copilot -cp -r agent-skills/flutter-testing-skill .cursor/skills/ -``` - -**Note**: If you prefer installing all available framework skills instead of only flutter-testing-skill, clone the repository directly into your tool's skills directory (for example, .claude/skills/, .cursor/skills/, .gemini/skills/, or .agent/skills/). -
-#### Execute Command +##### Execute Command Once you have uploaded your test suite, you can execute your test by running the following command: @@ -266,12 +269,12 @@ Once you have uploaded your test suite, you can execute your test by running the Make sure to enter your **basic authentication** and **app id** (generated in the first step) in the below command. ::: - - + +
@@ -297,11 +300,13 @@ curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/f + +
- + ```powershell -curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/flutter/ios/build" --header "Content-Type: application/json" --header "Authorization: Basic " --data-raw "{\"testSuite\": \"lt://APP_ID\",\"device\" : [\"Pixel 6-12\"], \"video\": true, \"deviceLog\": true, \"queueTimeout\" : \"9000\",\"idleTimeout\" : \"600\"\"network\": true,\"build\" : \"Flutter iOS\"}" +curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/flutter/ios/build" --header "Content-Type: application/json" --header "Authorization: Basic " --data-raw "{\"testSuite\": \"lt://APP_ID\",\"device\" : [\"iPhone 14-16\"], \"video\": true, \"deviceLog\": true, \"queueTimeout\" : \"9000\",\"idleTimeout\" : \"600\",\"network\": true,\"build\" : \"Flutter iOS\"}" ``` @@ -310,11 +315,11 @@ curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/f -### Step 3: View Test Execution +#### Step 3: View Test Execution Once you have run your tests, you can view the test execution along with logs. You will be able to see the test cases passing or failing. You can view the same at [ Automation](https://www.testmuai.com/login/?redirectTo=https://appautomation.lambdatest.com/builds). -## Capabilities Supported +### Capabilities Supported The following capabilities are supported: @@ -336,14 +341,14 @@ Ensure that the latitude is between -90 and 90, and the longitude is between -18 ::: -## Running Tests in Parallel +### Running Tests in Parallel on iOS You can run tests in parallel on multiple devices by passing the device name in comma separated format in the execute command as show below: ```bash -curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/flutter/build' \ +curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/flutter/ios/build' \ --header 'Authorization: Basic ' \ --header 'Content-Type: application/json' \ --data-raw '{ @@ -363,54 +368,6 @@ Do note that Flutter builds when run in parallel, result in separate builds bein ::: - - - -## Using the Flutter Testing Agent Skill with TestMu AI -*** - -The [flutter-testing-skill](https://github.com/LambdaTest/agent-skills/tree/main/flutter-testing-skill) is a part of [TestMu AI Skills](https://github.com/LambdaTest/agent-skills/) that guide AI coding assistants in generating production-ready test automation. - -The flutter-testing-skill package includes: - - - -``` -flutter-testing-skill/ -├── SKILL.md -└── reference/ - ├── playbook.md - └── advanced-patterns.md -``` - -It provides structured guidance for: - -* Project structure and setup -* Dependency configuration -* Local execution -* TestMu AI cloud execution -* Debugging patterns -* CI/CD integration - - -### Installing Flutter Testing Agent Skill -*** - -Install a Flutter Testing Agent Skill using the command below: - - - -``` -# Clone the repo and copy the skill you need -git clone https://github.com/LambdaTest/agent-skills.git -cp -r agent-skills/flutter-testing-skill .claude/skills/ - -# Or for Cursor / Copilot -cp -r agent-skills/flutter-testing-skill .cursor/skills/ -``` - -**Note**: If you prefer installing all available framework skills instead of only flutter-testing-skill, clone the repository directly into your tool's skills directory (for example, .claude/skills/, .cursor/skills/, .gemini/skills/, or .agent/skills/). - diff --git a/sidebars-unified.js b/sidebars-unified.js index 569e4943d..b30be90b8 100644 --- a/sidebars-unified.js +++ b/sidebars-unified.js @@ -30,7 +30,7 @@ const docsSidebar = [ { type: 'category', label: 'Appium Testing', collapsible: true, collapsed: true, items: items(s.AppiumTestingSidebar) }, { type: 'category', label: 'Espresso Testing', collapsible: true, collapsed: true, items: items(s.EspressoTestingSidebar) }, { type: 'category', label: 'XCUI Testing', collapsible: true, collapsed: true, items: items(s.XCUITestingSidebar) }, - { type: 'category', label: 'Flutter Testing', collapsible: true, collapsed: true, items: items(s.FlutterTestingSidebar) }, + { type: 'link', label: 'Flutter Testing', href: '/docs/getting-started-with-flutter-dart-android-automation/' }, { type: 'category', label: 'Virtual Devices', collapsible: true, collapsed: true, items: items(s.EmuSimuSidebar) }, ], }, @@ -130,7 +130,13 @@ const backToDocs = { }; const TestManagerSidebar = [backToDocs, ...items(s.TestManagerSidebar)]; +// Dedicated sidebar for Flutter Testing. The Flutter Testing entry in docsSidebar is a +// link (above), so these docs live ONLY here — Docusaurus displays this dedicated +// sidebar whenever a reader is inside Flutter Testing. +const FlutterTestingSidebar = [backToDocs, ...items(s.FlutterTestingSidebar)]; + module.exports = { docsSidebar, TestManagerSidebar, + FlutterTestingSidebar, }; diff --git a/sidebars.js b/sidebars.js index a3db6fbdf..f477ed06f 100644 --- a/sidebars.js +++ b/sidebars.js @@ -2979,28 +2979,22 @@ module.exports = { }, [ { - type: "doc", - label: "Getting Started with Flutter Integration Driver", - id: "appium-flutter-integration", - }, - { - type: "doc", - label: "Getting Started with Flutter Android", - id: "getting-started-with-flutter-dart-android-automation", - }, - { - type: "doc", - label: "Getting Started with Flutter iOS", - id: "getting-started-with-flutter-dart-ios-automation", - }, - { - type: "doc", - label: "Flutter Supported Capabilities", - id: "flutter-supported-capabilities", + type: "category", + collapsed: false, + label: "Getting Started", + items: [ + "test-flutter-apps", + "flutter-agent-skills", + "flutter-supported-capabilities", + "appium-flutter-integration", + "getting-started-with-flutter-dart-android-automation", + "getting-started-with-flutter-dart-ios-automation", + ], }, ], ], + VisualRegressionTestingSidebar: [ { type: 'link', From 7428c1a572a27b77626bdb37da6b40aabdff7293 Mon Sep 17 00:00:00 2001 From: salmank Date: Sun, 4 Oct 2026 06:11:57 +0530 Subject: [PATCH 2/7] style(docs): restyle Real/Virtual Device pills as neutral gray inline chips Match the migrated look: the Real/Virtual Device pills were colored (green/blue block pills). Restyle .realDeviceColor/.virtualDeviceColor to neutral gray inline chips (shared classes, so this applies site-wide). Co-Authored-By: Claude Opus 4.8 (1M context) --- src/css/custom.css | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index c9e959039..cd32527ec 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -90,16 +90,14 @@ .bugFixTagColor{color: #ffffff; background-color: var(--bugFix-tag-color); font-weight:bold; margin: -2px 3px; font-size: 12px; padding: 5px 10px; border-radius: 20px; border:1px solid var(--bugFix-tag-color)} .newReleaseColor{color: #ffffff; background-color: var(--newReleaseColor-tag-color); font-weight:bold; font-size: 12px; padding: 2px 6px; border-radius: 20px; border:1px solid var(--newReleaseColor-tag-color)} .featureColor{color: #ffffff; background-color: var(--featureColor-tag-color); font-weight:bold; font-size: 12px; padding: 2px 6px; border-radius: 20px; border:1px solid var(--featureColor-tag-color)} -.realDeviceColor{color: #ffffff; background-color: var(--realDevice-tag-color); font-weight:bold; font-size: 12px; padding: 2px 6px; border-radius: 20px; border:1px solid var(--realDevice-tag-color);width: 100px;text-align: center;display: block;} -.virtualDeviceColor{color: #ffffff; background-color: var(--virtualDevice-tag-color); font-weight:bold; font-size: 12px; padding: 2px 6px; border-radius: 20px; border:1px solid var(--virtualDevice-tag-color);width: 100px;text-align: center;display: block;} +.realDeviceColor{color: #3C4257; background-color: #F6F8FA; font-weight:500; font-size: 12px; padding: 3px 10px; border-radius: 6px; border:1px solid #D0D7DE;text-align: center;display: inline-block;margin-right: 6px;} +.virtualDeviceColor{color: #3C4257; background-color: #F6F8FA; font-weight:500; font-size: 12px; padding: 3px 10px; border-radius: 6px; border:1px solid #D0D7DE;text-align: center;display: inline-block;margin-right: 6px;} .androidDeviceColor{color: #ffffff; background-color: var(--androidDevice-tag-color); font-weight:bold; font-size: 12px; padding: 2px 6px; border-radius: 20px; border:1px solid var(--androidDevice-tag-color)} .iosDeviceColor{color: #ffffff; background-color: var(--iosDevice-tag-color); font-weight:bold; font-size: 12px; padding: 2px 6px; border-radius: 20px; border:1px solid var(--iosDevice-tag-color)} .verifiedTagColor{color: var(--verified-tag-color); background-color: var(--verified-tag-bg-color); font-weight:600; font-size: 12px; padding: 2px 8px; border-radius: 20px; border:1px solid var(--verified-tag-border-color); display: inline-flex; align-items: center; gap: 4px; line-height: 1.5;} .verifiedTagColor + div[class*='codeBlockContainer'], .verifiedTagColor + div[class*='language-']{margin-top: 6px;} .verifiedTagIcon{flex-shrink: 0;} -.virtualDeviceColor + span.realDeviceColor{margin-top: 10px;} -.virtualDeviceColor + span.virtualDeviceColor{margin-top: 10px;} -.realDeviceColor + span.virtualDeviceColor{margin-top: 10px;} +/* pills render inline, side-by-side; horizontal spacing via margin-right above */ [data-theme=dark] .footer__title { From 07db146c77ab725bbb0bc5ba96af7b04df621dc7 Mon Sep 17 00:00:00 2001 From: salmank Date: Sun, 4 Oct 2026 06:23:11 +0530 Subject: [PATCH 3/7] docs(flutter): move device pills above H1; drop redundant setup pointer appium-flutter-integration: set hide_title + add explicit H1 so the Real/Virtual Device pills render above the title, and remove the "(refer to the setup documentation below)" aside. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/appium-flutter-integration.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/appium-flutter-integration.md b/docs/appium-flutter-integration.md index 5937ffaf6..65fc8391b 100644 --- a/docs/appium-flutter-integration.md +++ b/docs/appium-flutter-integration.md @@ -1,6 +1,7 @@ --- id: appium-flutter-integration title: How to Test Flutter Apps With Appium on TestMu AI +hide_title: true sidebar_label: "Appium Flutter Integration Driver Testing" description: Test Flutter apps using the Appium Flutter Integration Driver on TestMu AI real device cloud, across Android and iOS. keywords: @@ -133,15 +134,17 @@ import VerifiedTag from '@site/src/component/verifiedTag'; /> -Testing Flutter apps on TestMu AI with Appium Flutter Integration Driver automates Flutter UI validation on real Android and iOS devices in the cloud, letting you write tests in multiple languages, switch contexts seamlessly, and drive gestures beyond native limits. - +# How to Test Flutter Apps With Appium on TestMu AI + +Testing Flutter apps on TestMu AI with Appium Flutter Integration Driver automates Flutter UI validation on real Android and iOS devices in the cloud, letting you write tests in multiple languages, switch contexts seamlessly, and drive gestures beyond native limits. + supports testing Flutter applications on real Android and iOS devices using the [**Appium Flutter Integration Driver**](https://github.com/AppiumTestDistribution/appium-flutter-integration-driver/). This driver enables you to automate Flutter app testing in multiple programming languages, providing a powerful and flexible way to validate your Flutter apps on real devices in the cloud. Testing Flutter apps requires embedding the **Flutter Integration Server** inside your app to enable communication between Appium and Flutter UI elements. -After preparing your Flutter app with this integration (refer to the setup documentation below), you can build, upload, and execute your tests on real devices using the Appium Flutter Integration Driver. +After preparing your Flutter app with this integration, you can build, upload, and execute your tests on real devices using the Appium Flutter Integration Driver. --- From b7fd39e044bdf0fe82b4de0185907295b4c428c2 Mon Sep 17 00:00:00 2001 From: salmank Date: Sun, 18 Oct 2026 18:15:44 +0530 Subject: [PATCH 4/7] docs(flutter): add "End-to-End (E2E) testing" keyword to intros Sync the E2E SEO wording from stage (226187d24) into the Flutter intros (iOS and appium-flutter-integration as-is; Android woven into the rewritten copy). Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/appium-flutter-integration.md | 2 +- docs/getting-started-with-flutter-dart-android-automation.md | 2 +- docs/getting-started-with-flutter-dart-ios-automation.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/appium-flutter-integration.md b/docs/appium-flutter-integration.md index 65fc8391b..6428bd234 100644 --- a/docs/appium-flutter-integration.md +++ b/docs/appium-flutter-integration.md @@ -140,7 +140,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; Testing Flutter apps on TestMu AI with Appium Flutter Integration Driver automates Flutter UI validation on real Android and iOS devices in the cloud, letting you write tests in multiple languages, switch contexts seamlessly, and drive gestures beyond native limits. - supports testing Flutter applications on real Android and iOS devices using the [**Appium Flutter Integration Driver**](https://github.com/AppiumTestDistribution/appium-flutter-integration-driver/). This driver enables you to automate Flutter app testing in multiple programming languages, providing a powerful and flexible way to validate your Flutter apps on real devices in the cloud. + supports testing Flutter applications on real Android and iOS devices using the [**Appium Flutter Integration Driver**](https://github.com/AppiumTestDistribution/appium-flutter-integration-driver/). This driver enables you to automate End-to-End (E2E) testing of Flutter apps in multiple programming languages, providing a powerful and flexible way to validate your Flutter apps on real devices in the cloud. Testing Flutter apps requires embedding the **Flutter Integration Server** inside your app to enable communication between Appium and Flutter UI elements. diff --git a/docs/getting-started-with-flutter-dart-android-automation.md b/docs/getting-started-with-flutter-dart-android-automation.md index c3471e86e..fa74a2876 100644 --- a/docs/getting-started-with-flutter-dart-android-automation.md +++ b/docs/getting-started-with-flutter-dart-android-automation.md @@ -223,7 +223,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; -Running your first Flutter Dart test on TestMu AI automates Flutter apps on real Android devices in the cloud. Install the Flutter SDK, set credentials, upload the sample app and test suite, then execute and review results on the dashboard. +Running your first Flutter Dart test on TestMu AI runs End-to-End (E2E) testing of Flutter apps on real Android devices in the cloud. Install the Flutter SDK, set credentials, upload the sample app and test suite, then execute and review results on the dashboard. ## Flutter Dart Testing on Android diff --git a/docs/getting-started-with-flutter-dart-ios-automation.md b/docs/getting-started-with-flutter-dart-ios-automation.md index a78e6dda1..825aa114b 100644 --- a/docs/getting-started-with-flutter-dart-ios-automation.md +++ b/docs/getting-started-with-flutter-dart-ios-automation.md @@ -185,7 +185,7 @@ Running your first Flutter Dart test on TestMu AI automates Flutter apps on real ## Flutter Dart Testing on iOS -In this section, we will explore how to run your first Flutter Dart test on an iOS device using the Real Device Cloud. By combining the capabilities of Flutter Dart and , you can ensure the proper functioning of your app across different devices and make your app more reliable and robust. +In this section, we will explore how to run Flutter Dart End-to-End (E2E) testing on an iOS device using the Real Device Cloud. By combining the capabilities of Flutter Dart and , you can ensure the proper functioning of your app across different devices and make your app more reliable and robust. ### Prerequisites for Getting Started From 5e76500308b45729ee026e0085c105e77f06e5be Mon Sep 17 00:00:00 2001 From: salmank Date: Sun, 18 Oct 2026 19:09:38 +0530 Subject: [PATCH 5/7] docs: align Article schema headline with page title Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/appium-flutter-integration.md | 2 +- docs/flutter-supported-capabilities.md | 2 +- docs/getting-started-with-flutter-dart-android-automation.md | 2 +- docs/getting-started-with-flutter-dart-ios-automation.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/appium-flutter-integration.md b/docs/appium-flutter-integration.md index 6428bd234..c67c8ebe6 100644 --- a/docs/appium-flutter-integration.md +++ b/docs/appium-flutter-integration.md @@ -63,7 +63,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "@type": "WebPage", "@id": "https://www.testmuai.com/support/docs/appium-flutter-integration/" }, - "headline": "Appium Flutter Integration Driver Testing", + "headline": "How to Test Flutter Apps With Appium on TestMu AI", "description": "Guide to testing Flutter apps using Appium Flutter Integration Driver on TestMu AI real device cloud.", "url": "https://www.testmuai.com/support/docs/appium-flutter-integration/", "image": { diff --git a/docs/flutter-supported-capabilities.md b/docs/flutter-supported-capabilities.md index e865e02eb..c91fcd606 100644 --- a/docs/flutter-supported-capabilities.md +++ b/docs/flutter-supported-capabilities.md @@ -58,7 +58,7 @@ import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; "@type": "WebPage", "@id": "https://www.testmuai.com/support/docs/flutter-supported-capabilities/" }, - "headline": "Flutter Supported Capabilities", + "headline": "Flutter Supported Capabilities on TestMu AI", "description": "Now you can run your Flutter framework on TestMu AI online grid of 3000+ real desktop browsers and real operating systems with its supported capabilities.", "url": "https://www.testmuai.com/support/docs/flutter-supported-capabilities/", "image": { diff --git a/docs/getting-started-with-flutter-dart-android-automation.md b/docs/getting-started-with-flutter-dart-android-automation.md index fa74a2876..be88b7646 100644 --- a/docs/getting-started-with-flutter-dart-android-automation.md +++ b/docs/getting-started-with-flutter-dart-android-automation.md @@ -60,7 +60,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "@type": "WebPage", "@id": "https://www.testmuai.com/support/docs/getting-started-with-flutter-dart-android-automation/" }, - "headline": "Flutter Dart Testing On TestMu AI - Android", + "headline": "How to Run Flutter Dart Tests on TestMu AI - Android", "description": "This guide shows you how to run your first Flutter Dart test on 5000+ real Android devices using TestMu AI's Real Device Cloud.", "url": "https://www.testmuai.com/support/docs/getting-started-with-flutter-dart-android-automation/", "image": { diff --git a/docs/getting-started-with-flutter-dart-ios-automation.md b/docs/getting-started-with-flutter-dart-ios-automation.md index 825aa114b..64bb69172 100644 --- a/docs/getting-started-with-flutter-dart-ios-automation.md +++ b/docs/getting-started-with-flutter-dart-ios-automation.md @@ -60,7 +60,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "@type": "WebPage", "@id": "https://www.testmuai.com/support/docs/getting-started-with-flutter-dart-ios-automation/" }, - "headline": "Flutter Dart Testing On TestMu AI - iOS", + "headline": "How to Run Flutter Dart Tests on TestMu AI - iOS", "description": "This guide details running your first Flutter Dart test on real iPhones using TestMu AI's Real Device Cloud.", "url": "https://www.testmuai.com/support/docs/getting-started-with-flutter-dart-ios-automation/", "image": { From 90db27ad58ddff0184ee0c84f21efc47371ec8f3 Mon Sep 17 00:00:00 2001 From: salmank Date: Sun, 25 Oct 2026 19:36:37 +0530 Subject: [PATCH 6/7] Synced Flutter docs --- ...-started-with-flutter-dart-android-automation.md | 2 +- sidebars-unified.js | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/docs/getting-started-with-flutter-dart-android-automation.md b/docs/getting-started-with-flutter-dart-android-automation.md index be88b7646..09d9de39f 100644 --- a/docs/getting-started-with-flutter-dart-android-automation.md +++ b/docs/getting-started-with-flutter-dart-android-automation.md @@ -227,7 +227,7 @@ Running your first Flutter Dart test on TestMu AI runs End-to-End (E2E) testing ## Flutter Dart Testing on Android -In this section, we will run your first Flutter Dart test on an **Android** device using the Real Device Cloud. +In this section, we will run Flutter Dart End-to-End (E2E) testing on an **Android** device using the Real Device Cloud. ### Prerequisites for Getting Started diff --git a/sidebars-unified.js b/sidebars-unified.js index c9ba12c20..0d07feb45 100644 --- a/sidebars-unified.js +++ b/sidebars-unified.js @@ -99,7 +99,6 @@ const BiDiTestingSidebar = [backToDocs, { type: 'doc', id: 'run-tests-with-webdr const AppiumTestingSidebar = dedicated(s.AppiumTestingSidebar); const EspressoTestingSidebar = dedicated(s.EspressoTestingSidebar); const XCUITestingSidebar = dedicated(s.XCUITestingSidebar); -const FlutterTestingSidebar = dedicated(s.FlutterTestingSidebar); const VirtualDevicesSidebar = dedicated(s.EmuSimuSidebar); // Standalone products @@ -160,17 +159,6 @@ const SettingsAndSecuritySidebar = [ }, ]; -// Dedicated sidebar for Test Manager. Because the Test Manager entry in -// docsSidebar is now a link (above), these docs live ONLY here — so Docusaurus -// displays this dedicated sidebar whenever a reader is inside Test Manager. -const backToDocs = { - type: 'link', - label: '← All Docs', - href: '/docs/', - customProps: { className: 'back-to-main-menu' }, -}; -const TestManagerSidebar = [backToDocs, ...items(s.TestManagerSidebar)]; - // Dedicated sidebar for Flutter Testing. The Flutter Testing entry in docsSidebar is a // link (above), so these docs live ONLY here — Docusaurus displays this dedicated // sidebar whenever a reader is inside Flutter Testing. @@ -207,5 +195,4 @@ module.exports = { AgentTestingSidebar, RealDeviceSidebar, TestManagerSidebar, - FlutterTestingSidebar, }; From ef4874f37f47c8fdb5c45281b849a9e389ce82ed Mon Sep 17 00:00:00 2001 From: salmank Date: Mon, 26 Oct 2026 14:24:15 +0530 Subject: [PATCH 7/7] Fix stage merge: restore Flutter intros and tags, duplicate sidebar const, App Automation block Co-Authored-By: Claude Sonnet 5.5 --- docs/appium-flutter-integration.md | 5 +++++ ...ng-started-with-flutter-dart-android-automation.md | 2 +- ...etting-started-with-flutter-dart-ios-automation.md | 2 +- sidebars-unified.js | 11 +++++------ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/docs/appium-flutter-integration.md b/docs/appium-flutter-integration.md index 54ada8bfe..c67c8ebe6 100644 --- a/docs/appium-flutter-integration.md +++ b/docs/appium-flutter-integration.md @@ -135,6 +135,11 @@ import VerifiedTag from '@site/src/component/verifiedTag'; + +# How to Test Flutter Apps With Appium on TestMu AI + +Testing Flutter apps on TestMu AI with Appium Flutter Integration Driver automates Flutter UI validation on real Android and iOS devices in the cloud, letting you write tests in multiple languages, switch contexts seamlessly, and drive gestures beyond native limits. + supports testing Flutter applications on real Android and iOS devices using the [**Appium Flutter Integration Driver**](https://github.com/AppiumTestDistribution/appium-flutter-integration-driver/). This driver enables you to automate End-to-End (E2E) testing of Flutter apps in multiple programming languages, providing a powerful and flexible way to validate your Flutter apps on real devices in the cloud. Testing Flutter apps requires embedding the **Flutter Integration Server** inside your app to enable communication between Appium and Flutter UI elements. diff --git a/docs/getting-started-with-flutter-dart-android-automation.md b/docs/getting-started-with-flutter-dart-android-automation.md index 54b07216d..09d9de39f 100644 --- a/docs/getting-started-with-flutter-dart-android-automation.md +++ b/docs/getting-started-with-flutter-dart-android-automation.md @@ -221,7 +221,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; ]) }} /> -In this guide, we will explore how to run Flutter Dart End-to-End (E2E) testing on an Android device using the Real Device Cloud. By combining the capabilities of Flutter Dart and , you can ensure the proper functioning of your app across different devices and make your app more reliable and robust. + Running your first Flutter Dart test on TestMu AI runs End-to-End (E2E) testing of Flutter apps on real Android devices in the cloud. Install the Flutter SDK, set credentials, upload the sample app and test suite, then execute and review results on the dashboard. diff --git a/docs/getting-started-with-flutter-dart-ios-automation.md b/docs/getting-started-with-flutter-dart-ios-automation.md index a688c839c..64bb69172 100644 --- a/docs/getting-started-with-flutter-dart-ios-automation.md +++ b/docs/getting-started-with-flutter-dart-ios-automation.md @@ -181,7 +181,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; -In this guide, we will explore how to run Flutter Dart End-to-End (E2E) testing on an iOS device using the Real Device Cloud. By combining the capabilities of Flutter Dart and , you can ensure the proper functioning of your app across different devices and make your app more reliable and robust. +Running your first Flutter Dart test on TestMu AI automates Flutter apps on real iOS devices in the cloud. Install the Flutter SDK, set credentials, upload the sample app and test suite, then execute and review results on the dashboard. ## Flutter Dart Testing on iOS diff --git a/sidebars-unified.js b/sidebars-unified.js index a848acecd..e7a6b6c19 100644 --- a/sidebars-unified.js +++ b/sidebars-unified.js @@ -43,12 +43,12 @@ const docsSidebar = [ { type: 'category', label: 'App Automation', collapsible: true, collapsed: true, items: [ - { type: 'link', label: 'Appium Testing', href: '/docs/getting-started-with-appium-testing/' }, - { type: 'link', label: 'Espresso Testing', href: '/docs/getting-started-with-espresso-testing/' }, - { type: 'link', label: 'XCUI Testing', href: '/docs/getting-started-with-xcuitest/' }, + { type: 'category', label: 'Appium Testing', collapsible: true, collapsed: true, items: items(s.AppiumTestingSidebar) }, + { type: 'category', label: 'Espresso Testing', collapsible: true, collapsed: true, items: items(s.EspressoTestingSidebar) }, + { type: 'category', label: 'XCUI Testing', collapsible: true, collapsed: true, items: items(s.XCUITestingSidebar) }, { type: 'link', label: 'Mobilewright Testing', href: '/docs/mobilewright-overview/' }, - { type: 'link', label: 'Flutter Testing', href: '/docs/appium-flutter-integration/' }, - { type: 'link', label: 'Virtual Devices', href: '/docs/app-automation-on-emulators-simulators/' }, + { type: 'link', label: 'Flutter Testing', href: '/docs/getting-started-with-flutter-dart-android-automation/' }, + { type: 'category', label: 'Virtual Devices', collapsible: true, collapsed: true, items: items(s.EmuSimuSidebar) }, ], }, { type: 'link', label: 'HyperExecute', href: '/docs/getting-started-with-hyperexecute/' }, @@ -100,7 +100,6 @@ const BiDiTestingSidebar = [backToDocs, { type: 'doc', id: 'run-tests-with-webdr const AppiumTestingSidebar = dedicated(s.AppiumTestingSidebar); const EspressoTestingSidebar = dedicated(s.EspressoTestingSidebar); const XCUITestingSidebar = dedicated(s.XCUITestingSidebar); -const FlutterTestingSidebar = dedicated(s.FlutterTestingSidebar); const MobilewrightTestingSidebar = dedicated(s.MobilewrightTestingSidebar); const VirtualDevicesSidebar = dedicated(s.EmuSimuSidebar);