• flutter集成测试


    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
      • 这两者做的操作是:
        •   为集成测试创建指令化的应用程序
        •   写一个测试
        •   运行测试

      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.dartapp_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进行测试,但是目前还没有发行稳定版

  • 相关阅读:
    详细,Qt Creator快捷键大全,附快捷键配置方法
    Qt Creator 你必须要掌握的快捷操作
    Linux 终端下颜色的输出
    Qt之JSON生成与解析
    Ubuntu配置和修改IP地址
    USB的VID和PID,以及分类(Class,SubClass,Protocol)
    fatal error: gst/gst.h
    VID、PID查询
    el表达式具体解释
    F
  • 原文地址:https://www.cnblogs.com/ai594ai/p/15587239.html
Copyright © 2020-2023  润新知