问题标签 [flutterdriver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
211 浏览

flutter - 异常:DriverError:Flutter 应用程序中的错误:执行点击时未捕获的扩展错误:受保护的函数冲突

我正在尝试在颤振应用程序上运行自动化测试,但是当应用程序等待主页加载时会生成以下错误

当第一个方法(WidgetController.tapAt)被调用时,这是堆栈:

当第一个方法(WidgetController.tapAt)被调用时,这是堆栈:

我的 home_screen 代码

我的 home_step 代码

0 投票
1 回答
436 浏览

android - 如何自动化 Flutter 应用程序

我正在做一个项目,我正在使用 webview 打开一个网站。我希望应用程序自动在必填字段中填写数据并通过读取 OTP 登录并根据各种事件执行各种操作,例如人们使用 Selenium 创建自动化。我看过一些关于使用颤振驱动程序进行颤振自动化的文章,但它们主要用于小部件测试,我并不清楚。

任何人都可以提供有关如何正确实施这一点的见解吗?

提前致谢。

0 投票
2 回答
34 浏览

flutter - 如何使用 FlutterDriver 检查应用程序状态?

我们正在使用 FlutterDriver 构建一些集成测试,并希望验证应用程序的状态。

它似乎flutter drive在与应用程序完全不同的实例中运行,因此它们无法通过将数据存储在某些共享静态类中来间接通信。

是否有任何常见的策略将数据从应用程序传递到测试层?

我想到的一些想法:

  • 我们可以将 json 值写入磁盘,但测试端真的可以读取它吗?
  • 有一个隐藏的文本小部件,它显示了一个呈现状态的特殊 ui 视图,因此我们可以从测试层读取它
0 投票
1 回答
25 浏览

flutter - 使用`flutter drive`时如何捕获异常?

flutter drive即使堆栈中存在运行时异常,使用我的测试仍然可以通过。

例如,将此代码添加到 build() 中,不会被检测到:

有谁知道我怎么能在这个错误上失败?

0 投票
1 回答
507 浏览

flutter-test - 我应该如何在颤振驱动程序测试中找到全局密钥?

通常我将 Key: ValueKey 放在我想在我的测试用例中找到以进行测试的颤振元素中,但是这个特定元素已经有一个 globalKey。那么,我应该使用什么来查找元素中使用的 globalkey 呢?

值键

key: ValueKey('nameField')

在测试用例 => final nameField = find.byValueKey('nameField')

全局键

final LabeledGlobalKey<FormFieldState<String>> _passwordField = LabeledGlobalKey<FormFieldState<String>>("passwordFieldKey")

key: _passwordField

在测试用例 => final passwordField = find.???('???')

0 投票
0 回答
148 浏览

flutter - 通过 Flutter 测试作业在 Azure DevOps 管道上运行 Flutter 驱动程序测试

我想通过颤振测试作业在 devops 上运行颤振驱动程序测试。我可以在安装在 devops 服务器上的模拟器上运行测试吗?我尝试 flutter drive --target=test_driver/app.dart在颤振安装作业之后添加颤振命令作业,但它没有工作

0 投票
0 回答
82 浏览

flutter - Flutter Driver:一个接一个地运行标签或功能

我正在使用 flutter_driver 和 flutter_gherkin 包为我的应用程序编写测试。我写了一些功能。例如我有这两个特点:

login.feature

logout

现在为了测试该logout功能,我需要先运行该login功能,以便我可以在主视图中。所以第一个问题是:

1.如何按以下顺序运行这些场景:login-> logoutlogin(没有将场景复制到logout功能)

第一个问题是关于如何一个接一个地运行功能。第二个问题是关于标签的同一件事。如您所见,我有login,@correctLoginlogout标签。所以第二个问题是:

2. 如何按以下顺序运行标签:@correctLogin-> logout(请注意第一个login功能场景没有@correctLogin标签。我也想将此correctLogin标签与许多其他测试一起使用,因此添加标签logout不是一个好主意)

任何帮助将不胜感激。

0 投票
0 回答
197 浏览

android - 颤振驱动程序和集成测试包不适用于特定的颤振版本和特定的包。(颤振驱动程序依赖问题)

我使用flutter-driver包在应用程序的主要代码中实现 UI 测试,flutter 版本是1.22.6. 但是当我们将flutter版本升级到2.0.2它时,会导致和我们的包之间发生冲突问题,flutter-driver例如easy_localization 3.0.0flutter_launcher_icons 0.9.0

包也出现了同样的问题integration-test

错误是

因为来自 sdk 的 flutter_driver 的每个版本都依赖于 args 1.6.0 而 easy_localization 3.0.0 依赖于 args ^2.0.0,所以来自 sdk 的 flutter_driver 与 easy_localization 3.0.0 不兼容。并且因为没有任何版本的easy_localization 匹配>3.0.0 <4.0.0,所以来自sdk 的flutter_driver 与easy_localization ^3.0.0 不兼容。所以,因为 bluedeliveryapp 依赖于来自 sdk 的 easy_localization ^3.0.0 和 flutter_driver any,版本解析失败。pub get failed (1; 所以,因为 bluedeliveryapp 依赖于来自 sdk 的 easy_localization ^3.0.0 和 flutter_driver any,版本解决失败。)

我搜索了这个错误,解决方案是flutter-upgrade最新版本2.2.3 我不能升级flutter版本,2.0.2因为我们使用付费工具here sdk 4.7.2,它只依赖于2.0.2flutter版本,所以我无法升级我的flutter版本和here sdk版本。

如果这种方式无效,我可以在不使用的情况下测试颤振应用程序flutter-driverintegration test

有什么帮助吗?

0 投票
0 回答
19 浏览

flutter - 在颤振驱动测试中使用 easy_localisation 的 Intl

目前我正在为颤振应用程序编写集成测试,我需要测试语言选择小部件。在点击某种语言后,我需要验证语言环境是否发生了变化,所以我需要获取easy_localisation库的当前语言环境。根据这篇文章,我尝试直接从 调用它Intl.getCurrentLocale,但它会引发错误,因为 dart:ui 不能用于颤振驱动测试。那么如何在颤振驱动测试中获得当前的语言环境?PS:不是我想要的。Platform.defaultLocale

0 投票
0 回答
40 浏览

flutter - 应用程序崩溃后 Flutter Driver 继续运行测试

我正在实现需要应用程序从本机崩溃的组件测试——因为只有在崩溃之后,底层模块才会生成包含预期变量的崩溃报告。问题是如果应用程序崩溃/或重新启动,颤振驱动程序将无法继续工作。

如何让 Flutter 驱动程序预测到应用程序会崩溃并跳过它?这应该是 Flutter Driver 的功能请求吗?

注意:类似于 Appium 所做的事情(Appium 具有此功能)。