Workshop with Flutter app - up1/course-appium-robotframework GitHub Wiki
Workshop with Flutter app
Install Flutter driver for Appium
$appium driver install --source=npm appium-flutter-driver
# List all drivers
$appium driver list
Install local
$git clone https://github.com/appium/appium-flutter-driver.git
$cd appium-flutter-driver/driver
$npm install
$appium driver install --source local .
Config for Appium Inspector for Flutter Driver
{
"platformName": "Android",
"appium:app": "path/to/flutter.apk",
"appium:deviceName": "emulator-5554",
"appium:automationName": "Flutter"
}
Edit Flutter App
Pubspec.yaml
dev_dependencies:
flutter_driver:
sdk: flutter
Main.dart to enable Flutter driver
import 'package:flutter_driver/driver_extension.dart';
void main() {
enableFlutterDriverExtension();
runApp(DevicePreview(
enabled: !kReleaseMode,
builder: (context) => const MyApp(),
));
}
Run flutter app
$flutter doctor
$flutter run
Start Dev Tools to inspect UI (Appium Inspector not support !!)
$dart devtools
Add key to element for testing
login_screen.dart
const Text(
'Log In',
key: Key('login_text'),
style: TextStyle(
color: Color(0xFF755DC1),
fontSize: 27,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
),
)
Write test case with Robot framework + Appium Flutter Library
Install Flutter Applium Library
$pip install -U robotframework-appiumflutterlibrary
Demo.robot
*** Settings ***
Library AppiumFlutterLibrary
Suite Teardown Close Application
*** Variables ***
${REMOTE_URL} http://127.0.0.1:4723
${platformName} Android
${app} ${CURDIR}/../../demo-app/flutter.apk
${deviceName} id/name
${automationName} flutter
*** Test Cases ***
Test case name
Open Application ${REMOTE_URL}
... platformName=${platformName}
... app=${app} deviceName=${deviceName}
... automationName=${automationName}
Wait For Element key=email_key
Click Element key=email_key
Input Text key=email_key [email protected]
Input Text key=password_key 1234
Sleep 5s # Don't use
Start Appium server
$appium
Run test
$robot demo.robot