[Flutter] 需求调研 - 自动化需求调研以及选型

358 阅读4分钟

最近公司需要调研Flutter 自动化需求调研以及选型,从而想到了目前最火的ChatGTP,让他选型调研。


问:Flutter 支持多种自动化测试框架,常用的包括

答:flutter_test:Flutter 官方提供的测试框架,提供了大量的 widget 测试功能。

test package:Dart 语言的标准测试库,与 flutter_test 合并使用可以提供更丰富的测试功能。

mockito:Dart 的测试桩框架,帮助构建和测试 Flutter 应用中的模拟数据。

flutter_driver:Flutter 官方提供的用于编写 UI 自动化测试的库。

selenium:著名的 Web 自动化测试框架,也可以用于测试 Flutter 应用

以上的5个答案:经过测试,就只有flutter_test和flutter_driver真正自动化相关。


问:这个flutter_test做什么的?

答:flutter_test 是 Flutter 官方提供的一个测试框架,它专门用于测试 Flutter 应用的 widget。它提供了一系列的 API,可以帮助开发者在单元测试中对 widget 进行测试。

主要功能包括:

测试 widget 的外观:可以使用 flutter_test 判断 widget 的外观是否与预期一致。

测试 widget 的交互:可以使用 flutter_test 模拟用户的操作,测试 widget 的交互是否正确。

测试 widget 的性能:可以使用 flutter_test 跟踪 widget 的渲染性能,以确保它们在大量数据情况下仍然高效。

通过使用 flutter_test,可以在开发 Flutter 应用时保证代码质量,降低应用出现问题的风险。


问:flutter_test使用方法

答:使用 flutter_test 的步骤如下:在 pubspec.yaml 中添加 flutter_test 依赖:

创建测试文件:在项目的 test 目录下创建一个 Dart 文件,并导入 flutter_test 库。

编写测试代码:使用 flutter_test 库提供的 API 编写测试代码,并使用 test() 函数将测试用例添加到文件中。

例如,下面的代码演示了如何测试一个计数器应用的 widget:


import 'package:flutter_test/flutter_test.dart';

import 'package:my_counter_app/main.dart';

void main() {

  testWidgets('Counter increments smoke test', (WidgetTester tester) async {

    // Build our app and trigger a frame.

    await tester.pumpWidget(MyApp());

    // Verify that our counter starts at 0.

    expect(find.text('0'), findsOneWidget);

    expect(find.text('1'), findsNothing);

    // Tap the '+' icon and trigger a frame.

    await tester.tap(find.byIcon(Icons.add));

    await tester.pump();

    // Verify that our counter has incremented.

    expect(find.text('0'), findsNothing);

    expect(find.text('1'), findsOneWidget);

  });

}

运行测试:使用命令行运行 flutter test 命令,即可执行测试用例。

通过这些步骤,可以使用 flutter_test 库进行 Flutter 应用的 widget 测试。


问:flutter社交型app推荐用哪种自动化测试框架?

答:使用 flutter_test 的步骤如下:在 pubspec.yaml 中添加 flutter_test 依赖: 对于 Flutter 开发的社交型应用,推荐使用 Flutter Driver 进行自动化测试。

Flutter Driver 是 Flutter 官方提供的自动化测试框架,它可以帮助您对 Flutter 应用进行端到端(end-to-end)测试,验证应用的功能是否正常。Flutter Driver 支持对 Flutter 应用的 widget 进行测试,并且可以模拟用户操作,如点击按钮、输入文本等。

使用 Flutter Driver 进行自动化测试的步骤如下:

在 pubspec.yaml 中添加 flutter_driver 依赖:

dependencies:
  flutter_driver:
    sdk: flutter

创建测试文件:在项目的 test 目录下创建一个 Dart 文件,并导入 flutter_driver 库。

编写测试代码:使用 flutter_driver 库提供的 API 编写测试代码,并使用 group() 函数将测试用例添加到文件中。

void main() {
  group('Counter App', () {
    FlutterDriver driver;

    setUpAll(() async {
      driver = await FlutterDriver.connect();
    });

    tearDownAll(() async {
      if (driver != null) {
        driver.close();
      }
    });

    test('starts at 0', () async {
      expect(await driver.getText(find.byValueKey('counter')), "0");
    });

    test('increments the counter', () async {
      await driver.tap(find.byValueKey('increment'));
      expect(await driver.getText(find.byValueKey('counter')), "1");
    });

问:为什么推荐使用Flutter Driver?

答:推荐使用 Flutter Driver 作为 Flutter 社交型应用的自动化测试框架,原因如下:

官方支持:Flutter Driver 是 Flutter 官方提供的自动化测试框架,拥有完善的文档和技术支持。

与 Flutter 集成:Flutter Driver 可以很好地与 Flutter 集成,对 Flutter 应用进行端到端(end-to-end)测试,可以更好地保证应用的质量。

功能强大:Flutter Driver 支持交互式操作,例如点击、输入、滚动等,可以模拟用户的操作,更好地评估应用的用户体验。

支持多平台:Flutter Driver 支持在多个平台上运行,包括 iOS 和 Android,可以更好地评估应用的跨平台性。 因此,在 Flutter 开发社交型应用时,推荐使用 Flutter Driver 作为自动化测试框架。


最后:既然推荐Flutter Driver,那不得接入Demo进行测试以及使用。待续....