From 5e8c88fb42d64918c98e60bbf7ce6178a4143190 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Tue, 27 Aug 2024 16:10:16 +0200 Subject: [PATCH] Adding a flutter overview page. --- .../appium-flutter-integration-driver.md | 12 ++-- docs/mobile-apps/automated-testing/flutter.md | 67 +++++++++++++++++++ docusaurus.config.js | 4 +- sidebars.js | 1 + 4 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 docs/mobile-apps/automated-testing/flutter.md diff --git a/docs/mobile-apps/automated-testing/appium/appium-flutter-integration-driver.md b/docs/mobile-apps/automated-testing/appium/appium-flutter-integration-driver.md index be7511ed2c..0bb2463353 100644 --- a/docs/mobile-apps/automated-testing/appium/appium-flutter-integration-driver.md +++ b/docs/mobile-apps/automated-testing/appium/appium-flutter-integration-driver.md @@ -17,13 +17,11 @@ you can [upload](#uploading-your-flutter-app-to-sauce-labs) it to Sauce Labs, [C ## Native Flutter Integration Driver vs Appium Flutter Integration Driver -| Use Cases | Native Flutter Driver | Appium Flutter Integration Driver | -| ----------------------------------------------------------------------------------------------------------------------------------- | --------------------- | --------------------------------- | -| Writing tests in languages other than Dart | ❌ | ✔️ | -| Running integration tests for Flutter apps with embedded webview or native view, or existing native apps with embedded Flutter view | ❌ | ✔️ | -| Running tests on multiple devices simultaneously | ❌ | ✔️ | -| Running integration tests on device farms that offer Appium support | ❌ | ✔️ | -| App interactions beyond Flutter’s contextuality (e.g., sending an OTP from a message application) | ❌ | ✔️ | +The Appium Flutter Integration Driver is a wrapper around the Appium framework and uses the Flutter Integration Test SDK +to enable you to write tests in languages other than Dart, such as Java, Python, Ruby, and more. The driver is designed to +run integration tests for Flutter apps with embedded WebViews or native views, or existing native apps with embedded Flutter views. + +For more information, see [Choosing a Flutter Integration Driver for Testing](/mobile-apps/automated-testing/flutter/#choosing-a-flutter-integration-driver-for-testing). ## Differences from Appium Flutter Driver diff --git a/docs/mobile-apps/automated-testing/flutter.md b/docs/mobile-apps/automated-testing/flutter.md new file mode 100644 index 0000000000..f6cc6b586a --- /dev/null +++ b/docs/mobile-apps/automated-testing/flutter.md @@ -0,0 +1,67 @@ +--- +id: flutter +title: Flutter on Sauce Labs +sidebar_label: Using Flutter +description: Test your mobile Flutter apps on Sauce Labs +--- + +import useBaseUrl from '@docusaurus/useBaseUrl'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Are your iOS and Android apps built with Flutter? Sauce Labs supports testing Flutter apps on real devices. + +[Flutter](https://flutter.dev/) is a popular open-source framework created by Google to build natively compiled +applications for mobile, web, and desktop from a single codebase. You can run your tests on Sauce Labs to benefit +from speed, parallelization, failure analysis, simple setup, and more. + + +## What You'll Need + +- A Sauce Labs account ([Log in](https://accounts.saucelabs.com/am/XUI/#login/) or sign up for a [free trial license](https://saucelabs.com/sign-up)) +- Your Sauce Labs [Username and Access Key](https://app.saucelabs.com/user-settings) +- Flutter mobile app. If you don't have one, you could use our Flutter Demo App: + - [Sauce Labs Flutter Demo App](https://github.com/saucelabs/my-demo-app-flutter) + + +## Choosing a Flutter Integration Driver for Testing + +There are two drivers that you can use to test your Flutter app on Sauce Labs: Native Flutter Integration Driver or +Appium Flutter Integration Driver. + +### Appium Flutter Integration Driver + +With the Appium Flutter Integration Driver, you can write tests in for both Android and iOS devices using the Appium +framework. The Appium Flutter Integration Driver is a wrapper around the Appium framework that allows you to write tests +in languages other than Dart, such as Java, Python, Ruby, and more. + +### Native Flutter Integration Driver + +With the Native Flutter Integration Driver, you can write tests in Dart and run them on Sauce Labs. Only Android is +currently supported. + +:::info iOS Support + +We're excited to share that Sauce Labs is actively working on expanding support for Flutter integration tests on iOS. +Stay tuned for updates as we continue to develop this capability! +::: + +Both drivers are based on [Flutter Integration Test](https://docs.flutter.dev/cookbook/testing/integration/introduction). +Check the table below to see which driver is best for your testing needs. + +| Use Cases | Native Flutter Driver | Appium Flutter Integration Driver | +| ----------------------------------------------------------------------------------------------------------------------------------- | --------------------- | --------------------------------- | +| Writing tests in languages other than Dart | ❌ | ✔️ | +| Running integration tests for Flutter apps with embedded webview or native view, or existing native apps with embedded Flutter view | ❌ | ✔️ | +| Running tests on multiple devices simultaneously | ❌ | ✔️ | +| Running integration tests on device farms that offer Appium support | ❌ | ✔️ | +| App interactions beyond Flutter’s contextuality (e.g., sending an OTP from a message application) | ❌ | ✔️ | + + +## How to Get Started + +After choosing the driver that best fits your testing needs, follow the guides below to set up your Flutter app for +testing on Sauce Labs. + +- [Appium Flutter Integration Driver](/mobile-apps/automated-testing/appium/appium-flutter-integration-driver) +- [Native Flutter Integration Driver Devices - Android](/mobile-apps/automated-testing/flutter/flutter-integration-testing-android) diff --git a/docusaurus.config.js b/docusaurus.config.js index dfea74b7d5..bfeaff2cab 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,8 +1,8 @@ const unwrapJsx = require('./src/plugins/unwrap-jsx'); // Enabling PR previews -let siteBaseUrl = "/" -if (process.env.PREVIEW_PATH) siteBaseUrl += process.env.PREVIEW_PATH +let siteBaseUrl = '/'; +if (process.env.PREVIEW_PATH) siteBaseUrl += process.env.PREVIEW_PATH; const docusaurusConfig = { title: 'Sauce Labs Documentation', diff --git a/sidebars.js b/sidebars.js index b27c841be1..f93cd7d9f7 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1433,6 +1433,7 @@ module.exports = { label: 'Flutter', collapsed: true, items: [ + 'mobile-apps/automated-testing/flutter', 'mobile-apps/automated-testing/flutter/flutter-integration-testing-android', ], },