本博客主要讲解怎么用appium-desktop测试纯flutter应用
Android端
准备
- 一台window电脑
- 安装最新appium-desktop(https://github.com/appium/appium-desktop/releases,我是1.18.3,因为appium只有在高版本才能测试flutter)
步骤
- 给要测试的flutter应用添加依赖
dev_dependencies: test: any flutter_test: sdk: flutter flutter_driver: sdk: flutter
-
给main方法添加代码
void main() { enableFlutterDriverExtension(); runApp(MyApp()); }
这里给出main.dart的代码
import 'package:flutter/material.dart'; import 'package:flutter_driver/driver_extension.dart'; void main() { enableFlutterDriverExtension(); runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Counter App', home: MyHomePage(title: 'Counter App Home Page'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: ListView.builder( itemExtent: 80, itemCount: 10000, itemBuilder: (context,index){ return Container( alignment: AlignmentDirectional.center, child: Text(index.toString()), ); }), ) ); } }
-
将flutter 应用打包成debug版或者profile版apk
flutter build apk --debug
-
编写测试脚本,脚本中要用到一个第三方包(https://github.com/truongsinh/appium-flutter-driver),我是用python写的脚本,所以直接用即可安装
pip install Appium-Flutter-Finder
然后代码里导包
import os from appium.webdriver import Remote from appium_flutter_finder import FlutterElement, FlutterFind