如何以编程方式为 AWS-Device Farm 设置 Appium --no-reset 标志

Posted

技术标签:

【中文标题】如何以编程方式为 AWS-Device Farm 设置 Appium --no-reset 标志【英文标题】:How to set Appium --no-reset flag programmatically for AWS-Device Farm 【发布时间】:2015-11-21 09:53:02 【问题描述】:

我想以编程方式设置 Appium Flag --no-reset。


当我们不想在会话之间重置应用状态时使用此标志(ios:不要删除应用 plist 文件;android:不要在新会话之前卸载应用)。 它的默认值为 False,我想让它为真,因为我已经通过在本地环境中设置 --no-reset=true 来编写我的测试脚本..


我为什么要这样做

我正在使用 AWS-Device Farm(它使用云服务在多个真实设备上运行测试用例)来测试我的 Android 应用程序,我无法控制在 AWS 上运行的 Appium 服务器,默认情况下它的 --no -reset 标志为 false ,因此它会在每次运行期间重置我的应用程序,这会导致测试用例失败。


来自 AWS-Device Farm 的日志

Starting testBBB
Pre-launching app
Starting android appium
Java version is: 1.7.0_75
Retrieving device
Found device 06db10920b305807
Device API level is: 21
App is already installed, resetting app
Starting App

注意:- 我正在使用 Appium V1.4.6、Intellij Idea (Java)、Junit 框架。请帮助并提出一些解决方案。谢谢你。

【问题讨论】:

【参考方案1】:

您不能将 --no-reset 与 AWS Device Farm 云一起使用。实际上,根据 AWS devicefarm 设计,来自 aws clod 的所有设备都是动态分配并在每次测试运行时重置所有内容(即应用程序 + 数据 + 设置)。

因此,每次您获得一台设备时,它就像是一台具有所有默认设置的全新设备。

【讨论】:

【参考方案2】:

在连接到 Appium 服务器时,您应该能够使用 noReset 所需的功能配置此功能。

根据 Appium 文档(找到 here):

noReset Don’t reset app state before this session. Default false true, false

【讨论】:

我已经尝试过了,但问题是 AWS-Farm 只是忽略了该功能。我认为 AWS Farm 处于初始阶段,他们可能会在下一个版本中修复许多缺陷。感谢您的建议。

以上是关于如何以编程方式为 AWS-Device Farm 设置 Appium --no-reset 标志的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式完成的设备场交互式测试

如何以编程方式使用自动布局以编程方式添加 UIview?

如何以编程方式将 Google Sheet 脚本发布/部署为 API 可执行文件?

如何以编程方式将颜色设置为 Cayenne

iOS - 如何以编程方式为控件设置自定义类

如何以编程方式为 BIRT 报告设置数据源?