flutter - 在 AWS Device Farm、Saucelabs、Firebase 测试实

如何在 AWS Device Farm、Saucelabs、Firebase 测试实验室等基础设施中非本地运行 Flutter 集成测试 (flutter_driver)?

Running flutter_driver tests在我的本地机器上运行顺畅且轻松,但是基于云的移动测试服务没有安装使用 Flutter CLI 命令所需的依赖项。

Flutter 存储库中有几个地方表明这是可能的,但是我很难准确找到实现这一目标需要发生的事情(我对 Android 的经验有限& iOS 集成测试)。

我找到的一些引用资料:
Flutter_gallery 中讨论集成测试的评论:https://github.com/flutter/flutter/issues/18879#issuecomment-400816050

添加 Firebase 测试实验室集成测试的 github 问题:https://github.com/flutter/flutter/issues/11718

我需要在我的 Flutter 应用程序中添加什么以允许在 AWS Device Farm、Saucelabs、Firebase 测试实验室等内部进行远程集成测试?

感谢您的帮助。

最佳答案

虽然我们并未正式支持 AWS Device Farm 上的 Flutter 框架和 Flutter 测试,但我们确实有办法让您使用我们的“自定义环境模式”并预先选择不同的受支持框架来运行这些测试。我的建议是执行以下操作:

  • 我有一个非常简单的 Appium Python 虚拟测试,这是一个受支持的测试框架,位于 https://s3-us-west-2.amazonaws.com/aws-devicefarm-support/test_bundle_slim.zip .从那里下载它,然后使用命令行工具 zip,将本地测试添加到这个 zip 文件中,使用诸如“zip -r ~/Downloads/test_bundle_slim.zip flutter-tests/”之类的命令
  • 转到 AWS Device Farm,设置自动化测试运行,上传您的应用程序,然后进入您选择测试类型的屏幕。选择 Appium Python,上传您的 zip 文件,AWS Device Farm 将接受测试,因为我们将原始虚拟 Appium Python 文件留在了 zip 文件中。
  • 在下方选择“自定义您的测试环境”,下方会出现一个带有 YAML 测试规范文件的新窗口。将以下几行放在测试规范的预测试部分,代替用于启动 Appium 服务器的现有代码:

{代码}

  - >-
    if [ $DEVICEFARM_DEVICE_PLATFORM_NAME = "Android" ];
    then
        # Run EC2 setup code here
        curl https://storage.googleapis.com/flutter_infra/releases/beta/linux/flutter_linux_v0.11.3-beta.tar.xz -o flutter_linux_v0.11.3-beta.tar.xz
        tar xf flutter_linux_v0.11.3-beta.tar.xz
    fi

    if [ $DEVICEFARM_DEVICE_PLATFORM_NAME = "iOS" ];
    then
        # Run Mac setup code here
        curl https://storage.googleapis.com/flutter_infra/releases/beta/macos/flutter_macos_v0.11.3-beta.zip -o flutter_macos_v0.11.3-beta.zip
        unzip -qq flutter_macos_v0.11.3-beta.zip
    fi

  - mv flutter ~/flutter
  - echo "export PATH=$PATH:$HOME/flutter/bin">> ~/.bash_profile
  - export PATH=$PATH:$HOME/flutter/bin
  - flutter devices

{代码}

  • 同样,转到测试规范文件的测试部分并删除python测试命令“bin/py.test”并将其替换为您的Flutter测试命令,例如“flutter drive --target=./flutter-测试/main.dart
  • 保存并关闭此测试规范文件,然后通过选择您的设备并设置它们的状态来完成设置自动化运行。

祝您在 AWS Device Farm 上测试顺利!我已经确认这些步骤确实可以在我们的测试平台上正确设置 Flutter。

关于flutter - 在 AWS Device Farm、Saucelabs、Firebase 测试实验室等中运行 Flutter 集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53307617/

相关文章:

dart - Flutter 不会使用不同的参数重建相同的小部件

flutter - 如何从 TextField 中删除内容填充?

text - 如何使用 Flutter 编写带有要点的段落?

flutter - 如何使用 FlutterDriver 检查小部件是否可见

dart - 在 RichText 小部件中向 TextSpan 背景添加额外的填充

dart - Flutter:如何正确实现 FlutterError.OnError

dart - 桶填充 flutter

flutter - 从网络加载图像时如何修复 Listview 滚动卡顿

android - 如何禁用使用 Flutter 1.0 在 Google map 中点击标记时出现

android - 库 com.google.android.gms :play-services-