Can I use Katalon Studio to automate testing for a flutter mobile app?

I want to use Katalon Studio for mobile testing, but the mobile app is flutter. I searched in chat GPT, but I was confused as there are many steps that should be done first, and some of them the developer should do.
I searched in Google and got that doc:
Flutter-based application testing with custom SetText keyword in Katalon Studio | Katalon Docs.

The answer seems different than I got from Chat GPT, but I trust the steps from the above link. Also, those steps seem to the dev who should do
"To use Appium Flutter Driver with Katalon Studio, follow these requirements:
*** Your Flutter App Under Test (AUT) must be compiled in debug or profile mode because Flutter Driver does not support running in release mode.**
*** Your Flutter AUT has enableFlutterDriverExtension() before runApp in source code.** "

Now, I am confused if I should follow the steps I got from Chat GPT or the steps I got in the above link. I would like you to help me with what I should do exactly in simple steps to use Katalon Studio to automate a Flutter mobile app? or is that not supported totally?
and to mention if some steps should be done by the developer or not.

Thank you in advance

1 Like

Here are other documents for Katalon Studio about testing a mobile flutter application.

1 Like

hey @sara.abdelfattah
I have experience testing Flutter apps using Katalon.
Here’s what I’ve learned so far:

1. Configure App Elements/Selectors

The primary issue lies with the app elements/selectors. To address this, you need to add the following package to your Flutter dev dependencies. This will ensure that Appium on Katalon works better:

# pubspec.yaml
dev_dependencies:
  flutter_driver:
    sdk: flutter

2. Enable Flutter Driver Extension

Next, include the line enableFlutterDriverExtension(); in your main() function.
Example usage:

void main() {
  enableFlutterDriverExtension();
  init();
  runApp(MyApp());
}

3. Add Keys or Semantic Labels

Finally, to allow Katalon to interact with your app’s elements/selectors, you need to add a key or a semanticLabel to your Flutter widgets.
Example:

Tooltip(
  message: 'counter_tooltip',
  child: StreamBuilder<int>(
    stream: counterStream,
    builder: (context, snapshot) {
      return Text(
        '${snapshot.data}',
        key: Key('counter'),
        style: Theme.of(context).textTheme.display1,
        semanticsLabel: 'counter_semantic',
      );
    },
  ),
),
2 Likes

Thank you, i will check this