如何在aws设备场中为android espresso每次测试运行后清除设备数据

Posted

技术标签:

【中文标题】如何在aws设备场中为android espresso每次测试运行后清除设备数据【英文标题】:how to clear device's data after each test run for android espresso in aws device farm 【发布时间】:2016-10-03 22:12:12 【问题描述】:

我们使用aws device farm 运行我们所有的android espresso 测试。在每个测试中,用户应该登录到应用程序,但我想在测试完成后清除所有设备的数据(登录信息),因为登录凭据被保存在设备中,这会影响我们其他测试的流程。我们所有的测试都是独立的,应该并行运行。在我看来,device farm 在每次运行后都不会清除以前的数据。

谁能告诉我如何在每次测试运行后删除设备的数据?非常感谢您的帮助。

【问题讨论】:

您想在测试之间重置什么(数据库、文件、首选项)?在***.com/questions/37597080/… 可以找到在每个测试之间重置首选项的示例 【参考方案1】:

Device Farm 会在每次测试运行后卸载您的包,这也应该清理您的包的数据。 Device Farm 还会清理本地/外部存储。

Device Farm 不会在测试用例之间的测试运行期间清理数据。 Device Farm 将在所有选定的设备上运行相同的测试,而不是拆分测试用例并在不同的设备上运行不同的部分。

您的软件包之外的某个地方是否有一些系统范围的数据存储?

【讨论】:

如何确保我的 testA 应该先运行然后 testB、testC?可以以某种方式安排我的测试吗? 目前 Device Farm 不支持测试用例顺序。一种可能的缓解方法是将序列包装在测试用例中。 您能详细说明一下吗?我们如何在测试用例中包装一个序列? 你可以像这样定义一个测试用例:@Test public void testSequence() testA;测试B;测试C; 这肯定不是一个完美的解决方案...

以上是关于如何在aws设备场中为android espresso每次测试运行后清除设备数据的主要内容,如果未能解决你的问题,请参考以下文章

无法读取 aws 设备场中的属性文件

无法使用Java TestNG项目解决AWS设备场中的依赖项 - jar错误

在 aws devicefarm 中为一组特定的 android 手机创建设备池

在 aws-device 场中运行特定的 TestNG testng.xml 套件文件

是否可以从设备场中的 playstore 安装应用程序?

如何在 AWS Device Farm 中运行 maven 命令