1、在Windows上搭建Flutter开发环境:
具体参考:https://flutterchina.club/setup-windows/
注:Flutter SDK的版本要和研发使用的版本一致
2、配置编辑器
具体参考:https://flutterchina.club/get-started/editor/
3、摘取测试应用程序的代码:
具体参考git或svn
4、进行测试测试:
集成测试主要用到的是FlutterDriver
,它提供API去测试运行在真实设备和模拟器里面的Flutter应用。
-
- Flutter的Driver是:
- 一个命令行工具
flutter drive
- 一个包
package:flutter_driver
- 一个命令行工具
- 这两者做的操作是:
- 为集成测试创建指令化的应用程序
- 写一个测试
- 运行测试
- Flutter的Driver是:
a.添加依赖:
要使用flutter_driver
,必须将以下块添加到您的pubspec.yaml
:
dev_dependencies:
#flutter 单元测试和Widgets测试
flutter_test:
sdk: flutter
#flutter 集成测试
flutter_driver:
sdk: flutter
test: any
b.添加测试文件
在项目根目录创建test_driver
目录和lib
目录同级,同时创建app.dart
和app_test.dart
文件:
为什么要创建两个文件,官方解释:
- 创建xx.dart文件:用于启动运行应用
- 创建xx_test.dart文件:Test脚本文件
- 集成测试中TestCase和应用运行在不同的进程中,所以需要test_driver目录里有两个文件分别用来执行应用和执行TestCase
注:xx.dat和xx_test.dart是配套的,代码会从xx.dat去查看对应的_test.dart的代码执行
app.dart代码如下:
import 'package:flutter_driver/driver_extension.dart'; // 导入应用应用程序的main.dart(wsapp是工程名) import 'package:wsapp/main.dart' as app; void main(){ // 启用FlutterDriver扩展 enableFlutterDriverExtension(); app.main(); }
app_test.dart:
import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';
void main() {
group('登录模块测试集合', () {
// 通过key属性定位元素
final userName = find.byValueKey('用户名');
final password = find.byValueKey('密码');
final login = find.text('登录');
FlutterDriver driver;
// 测试开始前链接FlutterDriver
setUpAll(() async {
driver = await FlutterDriver.connect();
});
// 测试结束后关闭FlutterDriver
tearDownAll(() async {
if (driver != null) driver.close();
});
// TestCase
test('登录模块测试-正常登录', () async {
//点击用户名
await driver.tap(userName);
//输入用户名
await driver.enterText('15112319');
//点击密码
await driver.tap(password);
//输入密码
await driver.enterText('1');
await driver.tap(login);
final buttonText = await driver.getText(find.text('确定'));
expect(buttonText, '确定');
});
});
}
注:1、每个控件必须提供唯一标识属性,flutter driver只提交key、text、icon、tooltip、type方式进行定位
2、具体可用API参考:https://api.flutter-io.cn/flutter/flutter_driver/flutter_driver-library.html
c、运行
flutter drive --target=test_driver/app.dart
注:1、使用这种方式,就只能使用dart语言进行开发,可能需要一定的学习成本;
2、也可以关注appium flutter driver这个第三方插件,通过appium进行测试,但是目前还没有发行稳定版