如何以编程方式为 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 标志的主要内容,如果未能解决你的问题,请参考以下文章